搜索
您的当前位置:首页SQL实现根据类型对金额进行归类

SQL实现根据类型对金额进行归类

时间:2020-11-09 来源:世旅网

select
temp.id
,sum(temp.typyA_amount) as typyA_amount
,sum(temp.typyB_amount) as typyB_amount
,sum(temp.typyC_amount) as typyC_amount
,sum(temp.typyD_amount) as typyD_amount
from
 (select t.id
 ,sum(t.A) as typyA_amount --A
 ,null as typyB_amount --B
 ,null as typyC_amount --C
 ,null as typyD_amount --D
 from table t
 where t.type ='A'
 group by t.id
 union all
 select t.id
 ,null as typyA_amount --A
 ,sum(t.B) as typyB_amount --B
 ,null as typyC_amount --C
 ,null as typyD_amount --D
 from table t
 where t.type ='B'
 group by t.id
 union all
 select t.id
 ,null as typyA_amount --A
 ,null as typyB_amount --B
 ,sum(t.C) as typyC_amount --C
 ,null as typyD_amount --D
 from table t
 where t.type ='C'
 group by t.id
 union all
 select t.id
 ,null as typyA_amount --A
 ,null as typyB_amount --B
 ,null as typyC_amount --C
 ,sum(t.D) as typyD_amount --D
 from table t
 where t.type ='D'
 group by t.id) temp
Top