【发布时间】:2015-06-30 22:17:01
【问题描述】:
我有一个 sql 查询
select * from orderTable
返回:
我想让查询返回一个额外的行,其中 orderId = 'Total' 以及 GrossAmt、Payments、NetAmt 的总和,其余字段为空,如下所示:
我尝试过的:
select isnull(OrderId, 'Total') as OrderId, GrossAmt
from (
select OrderId, SUM(GrossAmt) as GrossAmt
from orderTable
group by OrderId with rollup
) as OT
这将返回 Total 和 GrossAmt 总和的最后一行,但是当我尝试添加时,说 StoreId 如下:
select isnull(OrderId, 'Total') as OrderId, GrossAmt, StoreId
from (
select OrderId, SUM(GrossAmt) as GrossAmt, StoreId
from orderTable
group by OrderId, StoreId with rollup
) as OT
然后我得到双倍的结果,每行只有一个副本,StoreId 的值为空。
我刚刚想到在上述查询中切换 OrderId 和 StoreId 的位置,这给了我最接近的结果。我有我想要的,底部只有 2 行,其中一个 StoreId 为空。
【问题讨论】:
-
你想在
StoreID返回什么? -
我只希望它是空的,所以我想是空的。
标签: sql sql-server group-by sum