Sql server 合并同一表中的两个select语句?

Sql server 合并同一表中的两个select语句?,sql-server,Sql Server,我想创建一个查询,合并来自同一个表的两个查询的结果 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
  (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的性能更差。

如果确实需要对distinct案例进行计数:

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的性能比常规计数或求和差。

出现以下错误:Msg 156,级别15,状态1,第4行关键字“from”附近的语法不正确。很抱歉,在Case\u Status='Open'然后是1 else 0 endyes时缺少一个括号sumdistinctcase,只是编辑了它以使其更简单。假设case_ID是主键,则不必使用distinct。出现以下错误:Msg 156,Level 15,State 1,第4行关键字“from”附近的语法不正确。很抱歉,在case_Status='Open'然后是1 else 0 endyes时缺少一个括号sumdistinctcase,只是编辑了它以使其更简单。假设case_ID是主键,则不必使用distinct。从dbo中选择countdistinctCase_ID作为expr1。在case中,从dbo中选择countdistinctCase_ID作为expr2。如果case_Status='Open'起作用,则只需要在末尾加一个括号。但是很遗憾,我没有列名?从dbo中选择select countdistinctCase_ID as expr1。从dbo中选择countdistinctCase_ID as expr2。如果Case_Status='Open'起作用,则只需要在末尾加一个括号。但是不幸的是我没有列名?