以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]查询不同子表的合计数重复  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=164205)

--  作者:chinaabs
--  发布时间:2021/4/29 14:57:00
--  [求助]查询不同子表的合计数重复

父表:订单表, 子表1:订单明细表  子表2:收款明细表,两个子表和父表都是通过订单号关联。现在想sql生成一个表,包含三列,订单号,订单金额,已收合计。
语句是 select 订单表.订单号,sum(单价*数量) as \'订单金额\',sum(收款金额)as \'已收合计\' fro m ({订单表} innerjoin {订单明细表} on {订单表}.订单号 = {订单明细表}.订单号) inner join {收款明细表} on {订单表}.订单号 = {收款明细表}.订单号 where {订单表}.订单号 = \'xxxx\' group by  {订单表}.订单号

当一个订单有两条收款记录的时候,订单金额就会变成两倍,三条就是三倍。大概原因也明白,这个查询逻辑有问题,但不知道到怎样达到想要的效果。
请老师指点下思路

--  作者:有点蓝
--  发布时间:2021/4/29 15:57:00
--  
select 订单表.订单号,订单金额,已收合计 from ({订单表} inner join (selec订单号,sum(单价*数量) as \'订单金额\' from {订单明细表} where 订单号 = \'xxxx\'  group by  订单号) as a on {订单表}.订单号 = a.订单号) inner join (select  订单号,sum(收款金额)as \'已收合计\'  from  {收款明细表} where 订单号 = \'xxxx\'   group by  订单号) as b on {订单表}.订单号 = b.订单号 where {订单表}.订单号 = \'xxxx\' 
--  作者:chinaabs
--  发布时间:2021/4/29 17:24:00
--  
搞定,非常感谢