【发布时间】:2021-11-19 14:30:19
【问题描述】:
如何在不改变结果的情况下添加更多列?
目前,此脚本使用总和和按订单项分组 oi.nettprice 按订单价值获取前 300 个采购订单结果,这显示了正确的结果,如下所示。
select top 300
oi.orderid, o.traderid, o.orderdate,
SUM(oi.nettprice) AS nettprice
from orderitems AS oi
INNER JOIN orders AS o ON o.tradertype = 'S' AND o.id = oi.orderid
where oi.ordertype = 'PO'
AND oi.status != 'CANCELLED'
group by
oi.orderid, o.traderid, o.orderdate
order by
nettprice DESC
添加任何其他列以显示更多信息会更改结果并更改 oi.nettprice 的总和,如下所示,我尝试使用 group by rollup 但这会在单独的行中提供值,而其他列值为空。
select top 300
oi.orderid, o.traderid,
o.orderdate, oi.partid, oi.description, oi.partrevisionid,
SUM(oi.nettprice) AS nettprice
from orderitems AS oi
INNER JOIN orders AS o ON o.tradertype = 'S' AND o.id = oi.orderid
group by rollup
(oi.orderid, o.traderid, o.orderdate, oi.ordertype, oi.status, oi.partid, oi.description,
oi.partrevisionid)
HAVING oi.ordertype ='PO'
AND oi.status != 'CANCELLED'
order by
nettprice DESC
如何清除此问题以在不影响结果的情况下将任一表中的列包含每个采购订单的正确总计 (SUM)?
【问题讨论】:
标签: sql group-by sum ssms ssms-2014