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

以上产生了两组结果,我想要的是一组结果,其中expr1& expr2作为两个单独的列。稍后我将在 SRSS 中使用此结果。

4

3 回答 3

2
select 
     count(*) as expr1, 
     sum(case when Case_Status = 'Open' then 1 else 0 end)
from dbo.Cases
于 2013-07-02T12:22:58.250 回答
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'

可能只是缺少两个字段之间的逗号吗?

于 2013-07-02T12:28:26.423 回答
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()or差sum()

于 2013-07-02T13:17:13.867 回答