Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从表中插入,其中SEQ_NUM<&燃气轮机;2._Sql_Sql Server_Sql Server 2014 - Fatal编程技术网

Sql 从表中插入,其中SEQ_NUM<&燃气轮机;2.

Sql 从表中插入,其中SEQ_NUM<&燃气轮机;2.,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,我试图从临时表中的数据插入下表PS_VNDR_ADDR_SCROL,该临时表中尚未插入一行PS_VNDR_ADDR_SCROL,对于相同的供应商ID,该行的SEQ NUM等于2 下面的SQL运行但不插入任何行,我知道应该有132条记录满足此条件 INSERT PS_VNDR_ADDR_SCROL SELECT 'SHARE', A.VENDOR_ID, 2, 'HOME', 'BUSN', '' FROM #DepWork2 A WHERE NOT EXISTS ( SELECT VE

我试图从临时表中的数据插入下表
PS_VNDR_ADDR_SCROL
,该临时表中尚未插入一行
PS_VNDR_ADDR_SCROL
,对于相同的
供应商ID
,该行的
SEQ NUM
等于
2

下面的SQL运行但不插入任何行,我知道应该有132条记录满足此条件

INSERT PS_VNDR_ADDR_SCROL 
SELECT 'SHARE', A.VENDOR_ID, 2, 'HOME', 'BUSN', ''
FROM #DepWork2 A
WHERE NOT EXISTS (
    SELECT VENDOR_ID 
    FROM PS_VNDR_ADDR_SCROL B 
    WHERE B.VENDOR_ID = A.VENDOR_ID AND SEQ_NUM <> 2
)
尝试使用现有的

INSERT PS_VNDR_ADDR_SCROL 
SELECT 'SHARE', A.VENDOR_ID, 2, 'HOME', 'BUSN', ''
FROM #DepWork2 A
WHERE  EXISTS (SELECT 1  FROM PS_VNDR_ADDR_SCROL B  WHERE B.VENDOR_ID = A.VENDOR_ID AND SEQ_NUM = 2)
在下表中插入
PS\u VNDR\u ADDR\u SCROL
[…],其中表[…]中已有一行
PS\u VNDR\u ADDR\u SCROL
对于相同的
供应商ID,其
序号
等于2

您使用
NOT EXISTS
的方法看起来不错,但是我认为,为了符合您的规范,相关子查询应该拼写为:

SELECT VENDOR_ID 
FROM PS_VNDR_ADDR_SCROL B 
WHERE B.VENDOR_ID = A.VENDOR_ID AND SEQ_NUM = 2
而不是:

SELECT VENDOR_ID 
FROM PS_VNDR_ADDR_SCROL B 
WHERE B.VENDOR_ID = A.VENDOR_ID AND SEQ_NUM <> 2

注意:第二个查询中的语法错误来自这部分SQL代码:

...
WHERE NOT IN (
    SELECT VENDOR_ID 
    ...
)
您需要在
的左侧指定一列,该列不处于
状态。这可能是:

...
WHERE A.VENDOR_ID NOT IN (
    SELECT VENDOR_ID 
    ...
)

注意:当然,第二个查询也应该有条件
SEQ_NUM=2
,而不是相关子查询中的
SEQ_NUM 2

如果我将其更改为
WHERE EXISTS
,则会出现重复的键插入错误。使用
NOT EXISTS
SEQ_NBR=2
按预期工作,谢谢。
...
WHERE NOT IN (
    SELECT VENDOR_ID 
    ...
)
...
WHERE A.VENDOR_ID NOT IN (
    SELECT VENDOR_ID 
    ...
)