我想创建一个查询来合并来自同一个表的两个查询的结果。
select
(select count(distinct(Case_ID)) as expr1 from dbo.Cases)
(select count(distinct(Case_ID)) as expr2 from dbo.Cases where Case_Status = 'Open')
以上产生了两组结果,我想要的是一组结果,其中expr1
&
expr2
作为两个单独的列。稍后我将在 SRSS 中使用此结果。
我想创建一个查询来合并来自同一个表的两个查询的结果。
select
(select count(distinct(Case_ID)) as expr1 from dbo.Cases)
(select count(distinct(Case_ID)) as expr2 from dbo.Cases where Case_Status = 'Open')
以上产生了两组结果,我想要的是一组结果,其中expr1
&
expr2
作为两个单独的列。稍后我将在 SRSS 中使用此结果。
select
count(*) as expr1,
sum(case when Case_Status = 'Open' then 1 else 0 end)
from dbo.Cases
看起来你很亲密。这应该工作
select
(select count(distinct(Case_ID)) as expr1 from dbo.Cases)
, (select count(distinct(Case_ID)) as expr2 from dbo.Cases where Case_Status = 'Open'
可能只是缺少两个字段之间的逗号吗?
如果您确实需要计算不同的案例:
select count(distinct case_id) as NumCases,
count(case when Case_Status = 'Open' then case_id end) as NumOpen
from dbo.Cases;
注意:如果Case_Id
在 中是唯一的Cases
,则distinct
不需要。但是,您在原始查询中有它,这表明情况可能并非如此。的distinct
性能比普通的count()
or差sum()
。