三个表做 左外连接 出现的问题
use 查询计划4
go
select a.订单号,a.UPC,a.英文名称,a.中文名称,a.单位,a.订单数量,sum(b.入库数量) as N'入库数量',sum(c.装箱数量) as N'装箱数量',a.办公室 from 订单记录表 as a left outer join 订单入库表 as b on a.订单号=b.订单号 and a.upc=b.upc
LEFT OUTER JOIN 订单装箱记录表 as c on a.订单号=C.订单号 and a.UPC=c.UPC where a.订单号='id12212' group by a.订单号,a.UPC,a.英文名称,a.中文名称,a.单位,a.订单数量,a.办公室
查询出的结果 b.入库数量 这一列的数据翻2倍 c.装箱数量 这一列的数据翻3倍
请问各位大侠,这个问题应该如何解决呢?
[解决办法]
先left join变成一张表后,再做sum操作
select 订单号,UPC,英文名称,中文名称,单位,订单数量,办公室,sum(入库数量) as N'入库数量',sum(装箱数量) as N'装箱数量' from
(select a.订单号,a.UPC,a.英文名称,a.中文名称,a.单位,a.订单数量,b.入库数量 ,c.装箱数量,a.办公室
from 订单记录表 as a
left outer join 订单入库表 as b on a.订单号=b.订单号 and a.upc=b.upc
LEFT OUTER JOIN 订单装箱记录表 as c on a.订单号=C.订单号 and a.UPC=c.UPC
where a.订单号='id12212') d
group by 订单号,UPC,英文名称,中文名称,单位,订单数量,办公室
[解决办法]
思路:左外连接之类的,建议先合并为一张表之后,用distinct过滤之后,确认没有重复记录了,在sum。这样就不存在重复加了多次记录的问题。