求指点,SQL高手前来看看,怎么取出一个已经计算出来的结果,再做比对! 在线等!

2025-01-07 08:30:53
推荐回答(2个)
回答1:

再加一个条件啊.如下:
SELECT 编号, 仓库, 供货商
FROM dbo.库存表
WHERE (编号 NOT IN
(SELECT 盘点条码
FROM 盘点表)) and (仓库 = @仓库) and (供货商 = @供货商)
AND (编号 NOT IN
(SELECT 出货条码
FROM 出货表))
不过这样效率太差了呢~~~
不建议用NOT IN,应该用 NOT EXISTS。如下:
SELECT 编号, 仓库, 供货商
FROM dbo.库存表
WHERE (仓库 = @仓库)
and (供货商 = @供货商)
and NOT EXISTS(SELECT 盘点条码 FROM 盘点表 WHERE dbo.库存表.编号=盘点条码)
and NOT EXISTS(SELECT 出货条码 FROM 出货表 WHERE dbo.库存表.编号=出货条码)

这样效率最好~

回答2:

首先你得条件是要筛选编号,所以你得子查询结果也应该是编号。另外参数要先定义好。
where 编号 not in(select 编号 from 盘点条码 )