Sql server 如何在SQL中将列设为行
如何使列QuotedReal并作为“ActualStatus”列值的一部分进行评级Sql server 如何在SQL中将列设为行,sql-server,sql-server-2012,pivot-table,Sql Server,Sql Server 2012,Pivot Table,如何使列QuotedReal并作为“ActualStatus”列值的一部分进行评级 select EffectiveDate, ActualStatus, SUM(case when ActualStatus = 'Bound' then 1 when ActualStatus = 'Declined' then 1 when ActualStatus = 'Quoted' th
select
EffectiveDate,
ActualStatus,
SUM(case when ActualStatus = 'Bound' then 1
when ActualStatus = 'Declined' then 1
when ActualStatus = 'Quoted' then 1
when ActualStatus = 'Not Taken Up' then 1
when ActualStatus = 'Indication' then 1
when ActualStatus = 'Submitted' then 1
when ActualStatus = 'Lost' then 1
when ActualStatus = 'Indicated' then 1
else 0 end) as CountActual,
SUM(Quoted) as QuotedReal,
SUM(Case when QuotedPremium is not null then 1 else 0 end) as Rated
from #Olegggg
group by EffectiveDate,
ActualStatus
这就是我现在拥有的:
但我需要这样的东西:
您可能需要使用联合将3个记录集连接在一起
select EffectiveDate,
ActualStatus,
COUNT(*) as CountActual
from #Olegggg
where ActualStatus IN ('Bound','Declined',...'Indicated')
group by EffectiveDate,
ActualStatus
union all
select EffectiveDate,
'Quoted Real',
SUM(Quoted)
from #Olegggg
group by EffectiveDate
union all
select EffectiveDate,
'Rated',
COUNT(QuotedPremium)
from #Olegggg
group by EffectiveDate
JamieD您的解决方案简单而正确,除了 1.ActualStatus不会在组中用于Rated和QuotedReal。它只能按生效日期分组和聚合,以便每个日期有一行
不需要有所有的联合,因为我们没有任何重复的数据拉
select EffectiveDate,
ActualStatus,
COUNT(*) as CountActual
from #Olegggg
where ActualStatus IN ('Bound','Declined',...'Indicated')
group by EffectiveDate,
ActualStatus
union
select EffectiveDate,
'Quoted Real',
SUM(Quoted)
from #Olegggg
group by EffectiveDate,
//removed ActualStatus
union
select EffectiveDate,
'Rated',
COUNT(QuotedPremium)
from #Olegggg
group by EffectiveDate,
//removed ActualStatus
您可以将表格和样本数据的ddl作为插入来发布,而不是图片吗?这可能与使用DISTINCT运算符有关,选择DISTINCT EffectiveDate,“Quoted Real”,SUMGQUOTED from OLEGGGYES,这将提供与group BY相同的输出,无需使用union all,因为我们没有任何重复的数据可提取。所有工会都比工会成本低得多。如果您知道您的集合之间不可能有重复项,则UNION ALL是合适的运算符。@rmehra76 SELECT DISTINCT决不能生成一个结果集,该结果集在DISTINCT应用到的列中包含一个以上的值实例。@russ,我不明白您的意思。我在这篇文章中在哪里使用了DISTINCT?