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

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
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享