这样的汇总查询可不可以实现?
有订单,送货单两个表:
##订单表
自动编号 订单号 物料编号 颜色 数量
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连接。
问题点数:100、回复次数:8Top
1 楼budi(http://lysee.oicp.net)回复于 2002-08-02 12:45:00 得分 0
select a.订单号, a.物料编号, a.颜色, a.数量 as 定单数量, b.数量
from ##订单表 a, (select 订单号, sum(数量) as 数量 from ##送货单 group by 订单号) b
where a.订单号=b.订单号
Top
2 楼d_delphi()回复于 2002-08-02 13:06:54 得分 0
楼上的不行,还有物料编号、颜色也要对应呀。Top
3 楼qybao(阿宝)回复于 2002-08-02 13:18:58 得分 0
select A.订单号,
A.物料编号,
A.颜色,
A.数量 as 定单数量,
(Select sum(数量) from ##送货单 where 订单号=A.订单号) as 送货总数量
from ##订单表 ATop
4 楼Lulq21cn(沙虫)回复于 2002-08-02 13:36:49 得分 0
为何不先在##订单表和##送货单之间建立一个视图,在查询这个视图就OK了.Top
5 楼drc(老代)回复于 2002-08-02 13:37:19 得分 0
select a.订单号, a.物料编号, a.颜色, a.数量 as 定单数量, b.数量
from ##订单表 a, (select 订单号, sum(数量) as 数量 from ##送货单 group by 订单号,物料编号,颜色) b
where a.订单号=b.订单号
================================================================
我越来越喜欢DELPHI了!
================================================================
Top
6 楼renzhm(戴尔飞)回复于 2002-08-02 13:39:41 得分 0
select a.订单号,a.物料编号,a.颜色,a.订单数量,b.送货总数量
from ##订单表 a
left outer join
(select 物料编号, 颜色, 送货总数量=sum(数量), 订单号
from ##送货单 group by 物料编号,颜色, 订单号 ) b
on a.订单号=b.订单号
Top
7 楼d_delphi()回复于 2002-08-02 15:03:43 得分 0
上面几位,我都试过了,行不通。应该是这样:
select a.订单号,a.物料编号,a.颜色,a.订单数量,b.送货总数量
from 送货单 a join
(select 订单号, 物料编号, sum(数量) as 送货总数量 from 送货单
group by 订单号, 物料编号) b on (a.订单号=b.订单号 and a. 物料编号=b. 物料编号)
但在 on( ) 里面还要加:a.颜色=b.颜色 ;可是on( )里只能有一个"and",不能再加了,请帮忙想办法。Top
8 楼renzhm(戴尔飞)回复于 2002-08-02 15:17:15 得分 100
你的查询结果肯定不正确,
注意:你使用的是内联(默认),这样,如果没有送货的记录就查不到,
使用外联(左外联),若没有送货,就以0来填充,就是你要得结果
修改:on (a.订单号=b.订单号 and a. 物料编号=b. 物料编号)
为:on (a.订单号=b.订单号) and (a. 物料编号=b. 物料编号)
Top




