Sql 如何将两个相似的分组结果集合并为一个?

Sql 如何将两个相似的分组结果集合并为一个?,sql,sql-server-2012,Sql,Sql Server 2012,我有几个SQL Server 2012查询正在工作,但无法找出如何将它们组合到单个结果集中。我希望将[Total Claims]和[Reversed Claims]视为同一结果集中的相邻列。这可能吗 select [Date], DATENAME(weekday, [Date]) as [Day], [Total Claims] from (Select [Date], count(*) as [Total claims] from ClaimHistoryView group by [Date

我有几个SQL Server 2012查询正在工作,但无法找出如何将它们组合到单个结果集中。我希望将[Total Claims]和[Reversed Claims]视为同一结果集中的相邻列。这可能吗

select [Date], DATENAME(weekday, [Date]) as [Day], [Total Claims]
from (Select [Date], count(*) as [Total claims] from ClaimHistoryView group by [Date] )
as CountByDay
order by [Date] desc

select [Date], DATENAME(weekday, [Date]) as [Day], [Reversed Claims]
from (Select [Date], count(*) as [Reversed Claims] from ClaimHistoryView where status = 2 group by [Date] ) as CountByDay
order by [Date] desc

诀窍是使用“union all”和另一列组合这两个查询,该列指示数据来自何处,然后执行选择性透视。嗯。复杂的解释(对不起,德语)

这应该能奏效

select [Date], 
       DATENAME(weekday, [Date]) as [Day], 
       sum(case when Source = 1 then value else 0 end) as [Total Claims],
       sum(case when Source = 2 then value else 0 end) as [Reversed Claims]
from
(
  select 
        1 as source, 
        [Date], 
        count(*) as value 
  from  ClaimHistoryView 
  group by [Date]
union all
  select 
        2 as source,
        [Date],  
        count(*) as value 
  from  ClaimHistoryView 
  where status = 2 
  group by [Date]
) as CountByDay 
Group by [Date]
order by [Date] desc

非常感谢。注意,“2作为源”后面需要一个逗号。