小编Siy*_*ual的帖子

SQL:获取许多特定组中的所有用户

我有一个看似简单的SQL问题,但我找不到解决方案......

我有3张桌子:

1)"user"(id,lastname,firstname)

2)"user_x_group"(id_user,id_group)

3)"组"(id,name)

"用户"可以有许多"组".

什么是同时获取组1和组2中所有用户的查询?

SELECT *
FROM user u 
JOIN user_x_group x ON x.id_user = u.id 
WHERE id_group IN ('1', '2') 
Run Code Online (Sandbox Code Playgroud)

不正确,因为我获得了组1中的所有用户+组2中的所有用户+组1和组2中的所有用户.我只需要一个查询中的组1和组2中的所有用户.

怎么做 ?

mysql sql

3
推荐指数
1
解决办法
1144
查看次数

Oracle SQL ROW_NUMBER()窗口,其条件基于滞后

将Oracle SQL与仅选择权限一起使用时,我需要ROW_NUMBER根据条件提供输出.使用游标或循环这很容易,但目前我必须只使用SQL来执行此任务.

我一直在修补一个row_number() over我认为是正确的方法的条款,但我现在被困住了.

我目前的代码 - 或者至少是它的代理:

    WITH MYTABLE (FK_ID,FK_NAME,PK_ID,BIN_FLAG,MONTH,YEAR)AS (
      SELECT 10000,'VARCHAR DESCRIPTION',75057,1,1,2016 FROM DUAL
UNION SELECT 10000,'VARCHAR DESCRIPTION',75057,1,2,2016 FROM DUAL
UNION SELECT 10000,'VARCHAR DESCRIPTION',75057,1,3,2016 FROM DUAL
UNION SELECT 10000,'VARCHAR DESCRIPTION',75057,0,4,2016 FROM DUAL
UNION SELECT 10000,'VARCHAR DESCRIPTION',75057,1,5,2016 FROM DUAL
UNION SELECT 10000,'VARCHAR DESCRIPTION',75057,0,6,2016 FROM DUAL
UNION SELECT 10000,'VARCHAR DESCRIPTION',75057,0,7,2016 FROM DUAL
UNION SELECT 10000,'VARCHAR DESCRIPTION',75057,1,8,2016 FROM DUAL
UNION SELECT 10000,'VARCHAR DESCRIPTION',75057,0,9,2016 FROM DUAL
UNION SELECT 10000,'VARCHAR DESCRIPTION',75057,0,10,2016 FROM DUAL
UNION SELECT 10000,'VARCHAR DESCRIPTION',75057,1,11,2016 FROM DUAL …
Run Code Online (Sandbox Code Playgroud)

sql oracle

3
推荐指数
1
解决办法
783
查看次数

SQL Server:Where & Like 语句

我对我的 SQL 游戏相当生疏。我有一些代码(见下文)检查数据库实例(instance001、instance002 等),然后查找 LAST_READ 和 LAST_WRITE 字段何时为空,以及上次重置的时间。没有什么太过分了。

我遇到的问题是如何跨多个实例执行此操作。你会看到我注释掉了一个部分。如果我添加了适当的 OR 语句 ( or inst_name like 'instance002'),它不会得到我想要的结果。

示例:instance001 产生 1 条记录。instance002 产生 60。如果我使用, where inst_name like 'instance001' or inst_name like 'instance002' 我会得到 210 条记录。我将如何操作 SQL 以提供 61?

declare @timeString nvarchar(50) = CONVERT(varchar(24), GETDATE(), 120)
select DB_NAME, INST_NAME, MIN([LAST_SRVR_RST]) AS MIN_SRVR_RST, LAST_READ, LAST_WRITE, LOG_DATE=@timeString
from CMS_DB_LAST_READ_WRITE     -- Targeted DB with data.
where inst_name                 -- Targeted instance(s)
    like 'instance001'
    /*
    like 'instance002'
    like 'instance003'  
    like 'instance004'
    */
    and LAST_READ is null       -- …
Run Code Online (Sandbox Code Playgroud)

sql sql-server where

3
推荐指数
1
解决办法
65
查看次数

错误:apt-get install msodbcsql

当我在终端中执行以下操作时:

#sudo apt-get install msodbcsql
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

安装失败,检测到SQL Server的ODBC驱动程序11!

我尝试按照本教程重新安装:

https://docs.microsoft.com/en-us/sql/connect/odbc/linux/installing-the-microsoft-odbc-driver-for-sql-server-on-linux

但我仍然得到同样的错误.有任何想法吗?

sql-server odbc ubuntu-16.04

3
推荐指数
2
解决办法
7772
查看次数

两个更新有一个条件

我想在一个语句中一起做2个更新,我希望在事务子句中使用更新将有助于此.但事实并非如此.所以下面,我期待它找到记录并更新它.但是它执行第一个,当它进入第二个时,值"Expired"已经为0.我怎样才能做到这一点?(docid ='Syn25331'只是用一条记录进行测试.但是我想要成千上万的记录,因此没有docid ='Syn25331'条件)

BEGIN TRANSACTION;

Update main
Set expired = 0
where Expires > GETDATE() and Expired =1 and docid ='Syn25331'


Update main
Set TractorID = AssetID
where Expires > GETDATE() and Expired =1 and docid ='Syn25331'

COMMIT;
Run Code Online (Sandbox Code Playgroud)

sql sql-server

3
推荐指数
1
解决办法
64
查看次数

在 JavaScript(NodeJS) 中从 MongoDB ObjectId 获取唯一的 int?

我参与了一个项目,我们使用 MongoDB 作为主要数据库系统,使用 JavaScript/NodeJS 作为服务器端。我们需要与外部合作伙伴进行整合。

我们合作伙伴的 API 需要操作编号,该编号应该是唯一的整数值。我们决定使用 4 字节时间戳和 3 字节随机增量值的组合ObjectId,但结果数字太高,我们失去了精度。

这是程序

var getUniqueIntFromObjectId = function (object_id) {
    var res = null;
    object_id = object_id.toString();
    res = parseInt(object_id.substring(0, 8), 16).toString() + parseInt(object_id.substring(18, 24), 16).toString();
    return parseInt(res, 10);
};
Run Code Online (Sandbox Code Playgroud)

我们如何改进此程序,或更改它以实现目标?

javascript computer-science mongodb

2
推荐指数
1
解决办法
2154
查看次数

尝试使用WITH创建View时出现问题

我正在尝试创建以下视图,查询运行查找,直到我尝试创建一个视图,然后我收到一个错误,指出:创建视图或函数失败,因为没有为列1指定列名,研究我发现没有真正帮助,因为它通常是一个简单的查询错误,但我的目前运行正常.任何见解?

CREATE VIEW dbo.prov_prod_rv AS

WITH rep_prods AS (SELECT t.amount, t.provider_id, t.clinic, p.period_start, t.impacts, 
p.period_end, p.period_id, p.fiscal_year, p.date_man
FROM dbo.transactions AS t 
CROSS JOIN dbo.period AS p
WHERE (t.date_entered BETWEEN p.period_start AND p.period_end))

SELECT SUM(r.amount), r.provider_id, d.first_name, d.last_name, d.position_id, d.clinic, r.period_id, r.fiscal_year, r.date_man
FROM rep_prods AS r INNER JOIN
dbo.provider AS d ON r.provider_id = d.provider_id AND r.clinic = d.clinic
WHERE (r.impacts = 'P') AND (r.amount <> 0)
GROUP BY r.provider_id, d.first_name, d.last_name, d.position_id, d.clinic, r.period_id, r.fiscal_year, r.date_man
Run Code Online (Sandbox Code Playgroud)

sql sql-server

2
推荐指数
1
解决办法
92
查看次数

字符串或二进制数据将被截断.该语句已终止.(长度相同)

我收到上面的错误消息,我知道当你试图将较大的数据插入较小的列时,它"通常".

问题是,进入的列不大于目的地.

看一看:

CREATE TABLE #temp (
    row_id INT identity(1, 1)
    ,error_ind BIT DEFAULT 0
    ,add_edit_del_ind VARCHAR(1) DEFAULT ''
    ,vendor_sap_load_temp_id INT
    ,vendor_id VARCHAR(10)
    ,vendor_name VARCHAR(35)
    ,title VARCHAR(15)
    ,name2 VARCHAR(35)
    ,name3 VARCHAR(35)
    ,name4 VARCHAR(35)
    ,address VARCHAR(60)
    ,city VARCHAR(40)
    ,district VARCHAR(40)
    ,STATE VARCHAR(3)
    ,zipcode VARCHAR(10)
    ,country VARCHAR(3)
    ,account_grp VARCHAR(4)
    ,industry_key VARCHAR(4)
    ,ext_code VARCHAR(10)
    ,systems_ind VARCHAR(10)
    ,remit_to_vendor_id VARCHAR(10)
    ,LANGUAGE VARCHAR(10)
    ,individual_us_tax_id VARCHAR(9)
    ,vendor_us_tax_id VARCHAR(9)
    ,vat_reg_cd VARCHAR(20)
    ,tax_office VARCHAR(10)
    ,tax_nbr VARCHAR(18)
    ,tax_jurisdiction VARCHAR(15)
    ,phone_nbr VARCHAR(30)
    ,email_addr VARCHAR(241)
    ,delete_ind BIT
    ,stk_id INT
    ,stk_role_id INT
    ,name_id …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

2
推荐指数
1
解决办法
114
查看次数

T SQL - 通过存储过程传递表变量

假设我有一个存储过程:

exec my_sp ?,?
Run Code Online (Sandbox Code Playgroud)

我可以通过添加两个值来执行此存储过程,例如

exec my_sp 'value 1','value 2'
Run Code Online (Sandbox Code Playgroud)

现在这就是事情变得棘手......

我有一张桌子

1  |  2
aa   bb
cc   dd
Run Code Online (Sandbox Code Playgroud)

等等.......

现在我想传递我的表值并创建一个结果表,例如

exec my_sp 'aa','bb'

exec my_sp 'cc','dd'
Run Code Online (Sandbox Code Playgroud)

等等..........

我怎样才能做到这一点?

sql t-sql sql-server stored-procedures

2
推荐指数
1
解决办法
7968
查看次数

在 C# 中确定位图中的像素是否为任何绿色阴影

我目前有以下代码来查看位图的像素:

public struct Pixel
{
    public byte Blue;
    public byte Green;
    public byte Red;
    public byte Alpha;

    public Pixel(byte blue, byte green, byte red, byte alpha)
    {
        Blue = blue;
        Green = green;
        Red = red;
        Alpha = alpha;
    }
}

    public unsafe void Change(ref Bitmap inputBitmap)
    {
        Rectangle imageSize = new Rectangle(0, 0, inputBitmap.Width, inputBitmap.Height);
        BitmapData imageData = inputBitmap.LockBits(imageSize, ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);

        for (int indexY = 0; indexY < imageData.Height; indexY++)
        {
            byte* imageDataBytes = (byte*)imageData.Scan0 + (indexY * imageData.Stride); …
Run Code Online (Sandbox Code Playgroud)

c# pixel bitmap

2
推荐指数
1
解决办法
1614
查看次数