注册 登录
编程论坛 SQL Server论坛

请教SQL语句出错,应该怎样写才能把想要的结果显示出来?

davyxjc 发布于 2010-06-24 08:58, 841 次点击
表1                              表2
采购单标识      采购数量         入库单号       入库数量      采购标识
A1              50               R1              50            A1
A2              100              R2              80            A2
A3              90               
需要的结果是 有多少采购订单没有入库(采购数量减去入库数量大于0 的记录)
select 表1.采购单标识,表1.采购数量,表2.入库数量 from 表1 left join 表2 on 表1.采购单标识=表2.采购标识 where 表1.采购数量-表2.入库数量>0
上面的语句只能把A2的记录显示出来,不能把A3的记录显示出来(因表2中没有A3的记录),请问应该怎样写才能达到正确的结果.
      
6 回复
#2
happynight2010-06-24 11:28
你需要的结果应该是 有多少采购订单没有入()库吧
select 表1.采购单标识,表1.采购数量,表2.入库数量 from 表1 left join 表2 on 表1.采购单标识=表2.采购标识 AND 表1.采购数量-表2.入库数量>0

把 WHERE 改成 AND 应该就可以了 WHERE 是对整体的一个条件限制,你在这里作限制自然无法返回你需要的一个结果

#3
juedihanfeng2010-06-24 11:39
select 表1.采购单标识,表1.采购数量,表2.入库数量 from 表1 left join 表2 on 表1.采购单标识=表2.采购标识 where 表1.采购数量-isnull(表2.入库数量,0)>0
#4
davyxjc2010-06-24 14:27
谢谢两位.解决了.
#5
wangfuli2010-06-24 15:26
支持3楼,要是改成:
select 表1.采购单标识,表1.采购数量,isnull(表2.入库数量,0) as 入库数量 from 表1 left join 表2 on 表1.采购单标识=表2.采购标识 where 表1.采购数量-isnull(表2.入库数量,0)>0
就更好了。
#6
happynight2010-06-25 09:22
以下是引用juedihanfeng在2010-6-24 11:39:39的发言:

select 表1.采购单标识,表1.采购数量,表2.入库数量 from 表1 left join 表2 on 表1.采购单标识=表2.采购标识 where 表1.采购数量-isnull(表2.入库数量,0)>0
学习了  看来是我火星了
#7
pfg11142010-07-01 11:40
请发一些深层次的技术问题,谢谢!
1