0

我有几个 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
4

1 回答 1

1

诀窍是使用“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
于 2012-11-27T19:36:12.360 回答