sql - 来自同一个表的两个sql查询的总和结果

标签 sql sql-server-2008 ssrs-2008-r2

我提出了这两个查询,以根据特定的 where 子句查找单个表中某个字段的总和:

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

我无法找到一种方法来将两个查询的结果相加以获得总计。关于如何执行此操作有什么建议吗?

最佳答案

只需将 [TRAN ID] 200 添加到 IN 子句:

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);

关于sql - 来自同一个表的两个sql查询的总和结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33419603/

相关文章:

java - 获取 MySQL 表中某列的 SUM 并将其放入 JTextField

php - php 和 mysql 中的奇怪错误

sql - 在 INNER JOIN 条件下有一个 'OR' 是个坏主意吗?

sql - 除以 0 时消除 Report Builder 3.0 中的 #Error

sql - 稀疏索引和密集索引的区别

sql - 请查看我的数据库模式 - 需要输入

sql - 在SQL Server中创建时间间隔

sql-server-2008 - SQL 2008 存储过程每隔一段时间运行成功

sql - 按子字符串计算 SQL Server 中的行数

reporting-services - 如何在 ssrs Report 2008 中创建目录添加页码或书签