SELECT 产品编码,产品名称,产品规格,产品单位,产品单价
FROM 入库记录
WHERE 产品编码 NOT IN (SELECT 产品编码 FROM 产品库存 WHERE 仓库编码='A' )
AND 产品规格 NOT IN (SELECT 产品规格 FROM 产品库存 WHERE 仓库编码='A' )这个语句有点问题,我一直没想通,我如果屏蔽掉最后一个判断
SELECT 产品编码,产品名称,产品规格,产品单位,产品单价
FROM 入库记录
WHERE 产品编码 NOT IN (SELECT 产品编码 FROM 产品库存 WHERE 仓库编码='A' )
这样的话,会有几条记录显示出来,说明在产品库存中没有入库记录的一些品种,但我按上面写得话,就一条都不显示了,一直没想通为什么。注:有使用同一个 产品编码 但不同规格的产品。
FROM 入库记录
WHERE 产品编码 NOT IN (SELECT 产品编码 FROM 产品库存 WHERE 仓库编码='A' )
AND 产品规格 NOT IN (SELECT 产品规格 FROM 产品库存 WHERE 仓库编码='A' )这个语句有点问题,我一直没想通,我如果屏蔽掉最后一个判断
SELECT 产品编码,产品名称,产品规格,产品单位,产品单价
FROM 入库记录
WHERE 产品编码 NOT IN (SELECT 产品编码 FROM 产品库存 WHERE 仓库编码='A' )
这样的话,会有几条记录显示出来,说明在产品库存中没有入库记录的一些品种,但我按上面写得话,就一条都不显示了,一直没想通为什么。注:有使用同一个 产品编码 但不同规格的产品。
FROM 入库记录 a
where not exists(select 1 from 产品库存
where 产品编码=a.产品编码 and 产品规格=a.产品规格 and 仓库编码='A')
--你写的sql相当于这个
SELECT 产品编码,产品名称,产品规格,产品单位,产品单价
FROM 入库记录
WHERE checksum(产品编码,产品规格) NOT IN (SELECT checksum(产品编码,产品规格) FROM 产品库存
WHERE 仓库编码='A' )
如果你按照产品编码,产品规格同时匹配去找,没有那就是没有了
查询入库表,
如果产品编码 不在 A 库产品库存的编码中 会有记录
如果再加上,且产品规格不在 A库产品库存的规格中 就不会有记录1.如果只是
查询入库表,
如果产品编码 不在 A 库产品库存的编码中 会有记录
这说明,有些产品编码不在A库产品库存的产品编码中.2.如果加上
且产品规格不在 A库产品库存的规格中 就不会有记录
这说明,那些产品编码不在A库产品库存的产品编码中的产品规格,在A库的产品规格中.一般,规格不会作主键,而将产品编码作主键,不同编码产品有可能有相同的规格,因此,最后的结论应该是:你的入库记录中,有一些编码不在A库中.检查一下你用
SELECT 产品编码,产品名称,产品规格,产品单位,产品单价
FROM 入库记录
WHERE 产品编码 NOT IN (SELECT 产品编码 FROM 产品库存 WHERE 仓库编码='A' )
查出来的记录,是些什么产品.