SQL 组合多个 SELECT 结果

标签 sql sql-server

我有三个 SELECT 语句,每个语句返回总计:“新案例”、“关闭案例”、“现有案例”。我如何组合这些以便它们在一个结果集中返回。

即我需要返回一个包含 3 个字段的表,“新案例”、“关闭案例”和“现有案例”,每个字段总计一个

SELECT     COUNT(CaseID) AS 'New Cases'
FROM         dbo.ClientCase
WHERE     (CaseStartDate >= CONVERT(DATETIME, '2009-01-01 00:00:00', 102))
  AND     (CaseStartDate <= CONVERT(DATETIME, '2009-03-31 00:00:00', 102))

SELECT     COUNT(CaseID) AS 'Closed Cases'
FROM         dbo.ClientCase
WHERE     (CaseClosedDate >= CONVERT(DATETIME, '2009-01-01 00:00:00', 102))
  AND     (CaseClosedDate <= CONVERT(DATETIME, '2009-03-31 00:00:00', 102))

SELECT     COUNT(CaseID) AS 'Existing Cases'
FROM         dbo.ClientCase
WHERE     (CaseStartDate <= CONVERT(DATETIME, '2009-03-31 00:00:00', 102))

最佳答案

当您计算相同的数据时,您可以并行进行:

select
   sum(case when CaseStartDate between '2009-01-01' and '2009-03-31' then 1 else 0 end) as [New Cases],
   sum(case when CaseClosedDate between '2009-01-01' and '2009-03-31' then 1 else 0 end) as [Closed Cases],
   sum(case when CaseStartDate <= '2009-03-31' then 1 else 0 end) as [Existing Cases]
from
   dbo.ClientCase

关于SQL 组合多个 SELECT 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/843642/

相关文章:

sql - 在 SQLCMD 模式下格式化输出?

sql - 设置 SQL 查询格式以不同方式显示

sql-server - 如何获取 SQL Server 2005 中所有用户创建的数据库?

PHP/MYSQL 根据条件更改按钮文本

javascript - 在 PHP 中执行指定时间范围内的操作

sql - 在 BigQuery 中使用 LEAD

MySQL:数字格式

java - mysql:查找具有作为 "string"的子字符串的字段的行

sql - Union 的奇怪 Order By 行为

.net - SSIS - 从文件名中获取子字符串并插入到数据库表中