sql语句汇总查询问题。(50分)

  • 主题发起人 主题发起人 d_delphi
  • 开始时间 开始时间
D

d_delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
有订单,送货单两个表:
##订单表
自动编号 订单号 物料编号 颜色 数量
1 02-1 a001 红 10
2 02-2 a001 红 5

##送货单
自动编号 送货单号 物料编号 颜色 数量 订单号
1 0798 a001 红 3 02-1
1 0810 a001 红 6 02-1

查询汇总(订单交货)
订单号 物料编号 颜色 订单数量 送货总数量
02-1 a001 红 10 9
02-2 a001 红 5 0
上面的订单交货的查询语句怎么样写?sql server数据库,用ADO连接。




 
select a.订单号,a.物料编号,a.颜色,a.订单数量,b.送货总数量
from 送货单 a join
(select 订单号, 物料编号, sum(数量) as 送货总数量 from 送货单
group by 订单号, 物料编号) b on (a.订单号=b.订单号 and a. 物料编号=b. 物料编号)
 
应该是:
select a.订单号,a.物料编号,a.颜色,a.订单数量,b.送货总数量
from 订单 a left join (select 订单号, 物料编号, sum(数量) as 送货总数量 from 送货单
group by 订单号, 物料编号) b on (a.订单号=b.订单号 and a. 物料编号=b. 物料编号)
 
楼上的,我的想法和你一样,但在on (a.订单号=b.订单号 and a. 物料编号=b. 物料编号)
里还要加:a.颜色=b.颜色 ,因为同一物料编号会有不同的颜色;问题就是在on( )里只能有
一个and ,也就是说只能有两个条件。请问如何将 a.颜色=b.颜色 加入去呢?
 
你可以这样:
select a.订单号,a.物料编号,a.颜色,a.订单数量,b.送货总数量
from 订单 a left join (select 订单号, 物料编号, sum(数量) as 送货总数量 from 送货单
group by 订单号, 物料编号) b on (a.订单号=b.订单号)
where a.物料编号=b. 物料编号
and a.颜色=b.颜色.
 
上面一位不行,如果没有送货单的话,订单也不查询出来,那订单也不显示了。
 
多人接受答案了。
 
试试:
select a.订单号 as 订单号,a.物料编号,a.颜色,a.数量 as 订单数量 ,送货总数量=
(select sum(数量) from b where b.订单号=订单号) from a
 
afiha 才是最好的
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部