sqlserver 汇总 行转列


select t.AccArea , (select accbal from v1 where accccy='MOP' and v1.accarea =t.accarea) as MOP ,
 (select accbal from v1 where accccy='HKD' and v1.accarea =t.accarea) as HKD ,
 (select accbal from v1 where accccy='OTHER' and v1.accarea =t.accarea) as OTHER
   FROM [GBD_DW].[dbo].[F_ACCBAL] t
   group by t.AccArea

select t.AccArea , max(t1.accbal) as MOP , max(t2.accbal) as HKD ,max(t3.accbal) as OTHER
   FROM [GBD_DW].[dbo].[F_ACCBAL] t
   left join (select * from v1 where accccy='MOP') t1 on t1.accarea = t.AccArea
   left join (select * from v1  where accccy='HKD') t2 on t2.accarea = t.AccArea
   left join (select * from v1  where accccy='OTHER') t3 on t3.accarea= t.AccArea
   group by t.AccArea

猜你喜欢

转载自af8991.iteye.com/blog/1415556