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
로그인 후 복사