【发布时间】:2019-09-07 14:00:40
【问题描述】:
我有两列需要根据 WHERE 语句求和,然后每列返回一个总计,我还需要将生成的 SUM 值相加得出最终总计。
我可以使用 UNION ALL 获得每列的单独 SUM 值,但不能将它们相加得到最终总数。
SELECT ISNULL(SUM(NILH1), 0) AS SUM
FROM [IG_300M19].[dbo].[Stn14_RFT]
WHERE NILH1 <= 25
AND DateStamp BETWEEN '2019-03-17 08:00' AND '2019-04-17 08:00'
UNION ALL
SELECT ISNULL(SUM(NILH2), 0) AS SUM
FROM [IG_300M19].[dbo].[Stn14_RFT]
WHERE NILH2 <= 25
AND DateStamp BETWEEN '2019-03-17 08:00' AND '2019-04-17 08:00';
上面返回两个值,一个是 NILH1 的总和,一个是 NILH2 的总和,现在我需要将它们加在一起得到最终的总和。
【问题讨论】:
-
这很简单,您可以将内部查询包装在外部
select sum(sum) from (<inner query here>) as InnerQuery中 - 尽管还有其他方法可以在不进行联合的情况下获得您想要的结果。
标签: sql sql-server tsql sql-server-2008 aggregate-functions