首页 > 解决方案 > 合并 ContainerID 行并添加 Qty

问题描述

我想组合容器 ID、日期并添加数量。此查询显示项目级别的数据。我希望它在订单级别打印数据并对“数量”列求和。

我可以使用 excel 和数据透视表组合行,但是当我运行超过 3 个月的报告时,我在 excel 中用完了行,所以我将它分成更小的块并添加结果。乏味。必须有一个更简单的方法。

我得到了什么:

OrderDate   ContainerID Qty
2019-06-03  104922434   1
2019-06-03  104922434   1
2019-06-01  104934958   1
2019-06-01  104934958   1
2019-06-01  104934958   1

我想要的是:

OrderDate   ContainerID Qty
2019-06-03  104922434   2
2019-06-01  104934958   3

我目前的查询:

select     

convert(date,oh.ShipTime) as 'OrderDate',
p.ContainerID,
cc.Qty

from dmhost.tblOrderHeader oh

join dmhost.tblContainer c on oh.OrderHeaderID = c.OrderHeaderID
join dmhost.tblPackage p on c.ContainerID = p.ContainerID
join dmhost.tblContainerContents cc on c.ContainerID = cc.ContainerID
join dmhost.tblItemMaster im on im.ItemMasterID = cc.ItemMasterID

where (oh.ShipTime between '06/1/2019' and '07/1/2019')
and (BusinessUnitCode like '03'or BusinessUnitCode like '04')
and cc.Qty <> 0

order by p.ContainerID

我很感激帮助。

标签: sqlsql-server

解决方案


您可以使用SUMGROUP BY

select     

convert(date,oh.ShipTime) as 'OrderDate',
p.ContainerID,
SUM(cc.Qty) Qty

from dmhost.tblOrderHeader oh

join dmhost.tblContainer c on oh.OrderHeaderID = c.OrderHeaderID
join dmhost.tblPackage p on c.ContainerID = p.ContainerID
join dmhost.tblContainerContents cc on c.ContainerID = cc.ContainerID
join dmhost.tblItemMaster im on im.ItemMasterID = cc.ItemMasterID

where (oh.ShipTime between '06/1/2019' and '07/1/2019')
and (BusinessUnitCode like '03'or BusinessUnitCode like '04')
and cc.Qty <> 0

group by
    convert(date,oh.ShipTime),
    p.ContainerID

order by ContainerID

推荐阅读