我想创建一个查询,该查询合并来自同一个表的两个查询的结果。
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中使用此结果。
答案 0 :(得分:2)
select
count(*) as expr1,
sum(case when Case_Status = 'Open' then 1 else 0 end)
from dbo.Cases
答案 1 :(得分:1)
看起来你非常接近。这应该工作
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'
可能只是错过了两个字段之间的逗号?
答案 2 :(得分:1)
如果你真的需要计算不同的案例:
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()
或sum()
差。