sql - 合并 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
我很感激帮助。
解决方案
您可以使用SUM
和GROUP 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
推荐阅读
- arrays - 为什么当 useState 数组元素发生变化时反应文本输入没有变化?
- python - 如何在 for 循环中使用 numpy.savez
- python - Python - dir() 中的重复是错误吗?
- c# - 如果存在,则更新因在 SQL Server 中的约 450k 行中使用 C# Azure 函数中的 ExecuteNonQueryAsync() 而超时
- javascript - 为什么我的 localStorage.setItem() 和 localStorage.getItem() 不存储值?
- python - 注册表总是报错“此字段是必填项”
- javascript - 仅在桌面上显示网页
- mongodb - MongoDB - 加入两个查询结果和dense_rank
- java - java.sql.SQLException:构造描述符失败:参数无效
- python - 烧瓶:“str”对象没有属性“is_active”