Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 server 2008 如果xxx不在。。。不归还任何东西_Sql Server 2008 - Fatal编程技术网

Sql server 2008 如果xxx不在。。。不归还任何东西

Sql server 2008 如果xxx不在。。。不归还任何东西,sql-server-2008,Sql Server 2008,有人能解释一下为什么最后一句话没有列出库存项目中但不在salesMasterDET中的所有ST项目吗?我正在使用SQL2008R2 如果我用以下内容填充临时表: 从salesMasterDET中将DISTINCTproductCode选择到smd_项目中 我运行了同样的选择,S1-S4,但是有了临时表,一切正常 S1:从库存项中选择差异项 S2:从salesMasterDET中选择DISTINCTProductCode S3:从库存项目中选择差异项,其中项目位于从salesMasterDET选择

有人能解释一下为什么最后一句话没有列出库存项目中但不在salesMasterDET中的所有ST项目吗?我正在使用SQL2008R2

如果我用以下内容填充临时表: 从salesMasterDET中将DISTINCTproductCode选择到smd_项目中 我运行了同样的选择,S1-S4,但是有了临时表,一切正常

S1:从库存项中选择差异项

S2:从salesMasterDET中选择DISTINCTProductCode

S3:从库存项目中选择差异项,其中项目位于从salesMasterDET选择产品代码中

S4:从库存项目中选择差异项,其中项目不在从salesMasterDET选择产品代码中

结果:

S1:ST01 ST02 ST03 ST04 ST05 ST11 ST12

S2:ST04 ST12

S3:ST04 ST12


S4:没有预期的结果ST01、ST02、ST11

我打赌您应该反转二进制操作

S4: SELECT DISTINCT(Item) FROM #inv_item where NOT Item IN (SELECT ProductCode FROM salesMasterDET)

如果从salesMasterDET运行查询SELECT*,其中ProductCode为NULL,它是否返回任何结果?如果是这样,那就是问题所在。NOT IN不会返回与NULL比较的值。您可以将查询更改为从inv_item中选择DifferenticationItem,其中item不在SelectProductCode FROM salesMasterDET中,其中ProductCode不为Null。我通常会从这些表中删除Null,并且没有考虑其结尾,但存在Null。问题解决了。简单的答案和理由。谢谢你,阿德里安。