Sql 如何将两个相似的分组结果集合并为一个?
我有几个SQL Server 2012查询正在工作,但无法找出如何将它们组合到单个结果集中。我希望将[Total Claims]和[Reversed Claims]视为同一结果集中的相邻列。这可能吗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
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作为源”后面需要一个逗号。