来自同一 table 的两个 sql 查询的总和结果
Sum results of two sql queries from same table
我提出了这两个查询,以根据特定的 where 子句在单个 table 上查找字段的总和:
Select Sum(dbo.Charges.[TRANS AMT]) as Total1
from dbo.Charges
where (dbo.Charges.[TRAN ID] IN (100, 20, 50, 52, 55, 60, 600))
Select Sum(dbo.Charges.[TRANS AMT]) as Total2
from dbo.Charges
where dbo.Charges.[TRAN ID] = 200
我无法找到一种方法来将两个查询的结果相加以获得总计。关于如何执行此操作有什么建议吗?
只需在 IN
子句中添加 [TRAN ID]
200
:
SELECT SUM(dbo.Charges.[TRANS AMT]) AS GRAND_TOTAL
FROM dbo.Charges
WHERE dbo.Charges.[TRAN ID] IN (100, 20, 50, 52, 55, 60, 600, 200);
获取所有金额:
SELECT
SUM(CASE WHEN dbo.Charges.[TRANS AMT] <> 200 THEN dbo.Charges.[TRANS AMT] END) AS Total1,
SUM(CASE WHEN dbo.Charges.[TRANS AMT] = 200 THEN dbo.Charges.[TRANS AMT] END) AS Total2,
SUM(dbo.Charges.[TRANS AMT]) AS GRAND_TOTAL
FROM dbo.Charges
WHERE dbo.Charges.[TRAN ID] IN (100, 20, 50, 52, 55, 60, 600, 200);
由于产生这些总和的行是互斥的,您可以将 [TRAN ID]
组合在它们的 where
子句中:
SELECT SUM(dbo.Charges.[TRANS AMT]) as GrandTotal
FROM dbo.Charges
WHERE dbo.Charges.[TRAN ID] IN (100, 20, 50, 52, 55, 60, 600, 200)
我提出了这两个查询,以根据特定的 where 子句在单个 table 上查找字段的总和:
Select Sum(dbo.Charges.[TRANS AMT]) as Total1
from dbo.Charges
where (dbo.Charges.[TRAN ID] IN (100, 20, 50, 52, 55, 60, 600))
Select Sum(dbo.Charges.[TRANS AMT]) as Total2
from dbo.Charges
where dbo.Charges.[TRAN ID] = 200
我无法找到一种方法来将两个查询的结果相加以获得总计。关于如何执行此操作有什么建议吗?
只需在 IN
子句中添加 [TRAN ID]
200
:
SELECT SUM(dbo.Charges.[TRANS AMT]) AS GRAND_TOTAL
FROM dbo.Charges
WHERE dbo.Charges.[TRAN ID] IN (100, 20, 50, 52, 55, 60, 600, 200);
获取所有金额:
SELECT
SUM(CASE WHEN dbo.Charges.[TRANS AMT] <> 200 THEN dbo.Charges.[TRANS AMT] END) AS Total1,
SUM(CASE WHEN dbo.Charges.[TRANS AMT] = 200 THEN dbo.Charges.[TRANS AMT] END) AS Total2,
SUM(dbo.Charges.[TRANS AMT]) AS GRAND_TOTAL
FROM dbo.Charges
WHERE dbo.Charges.[TRAN ID] IN (100, 20, 50, 52, 55, 60, 600, 200);
由于产生这些总和的行是互斥的,您可以将 [TRAN ID]
组合在它们的 where
子句中:
SELECT SUM(dbo.Charges.[TRANS AMT]) as GrandTotal
FROM dbo.Charges
WHERE dbo.Charges.[TRAN ID] IN (100, 20, 50, 52, 55, 60, 600, 200)