预先感谢.... !!!
我正在根据一个列将PIVOT两个金额字段分成多个列,例如PIVOT_NAME 我还有其他多个充当BK的字段,这些字段将保留为行 BK栏:BKCOL1,DEPT,YEAR_PD,TRANS_DATE 例如输入
BKCOL1 DEPT YEAR_PD TRAN_DATE PIVOT_NAME TY_SALES LY_SALES
100_bk D1 2020002 2019-10-11 P1 -1 1
100_bk D1 2020002 2019-10-12 P2 -2 2
100_bk D1 2020002 2019-10-11 P3 -3 3
100_bk D1 2020002 2019-10-14 P4 -4 4
100_bk D2 2020002 2019-10-14 P1 -5 5
100_bk D2 2020002 2019-10-16 P2 -7 7
100_bk D2 2020002 2019-10-17 P3 -8 8
100_bk D2 2020002 2019-10-18 P5 -9 9
也添加输入表图像
预期输出: Expected OUTPUT
所有TY%字段均来自TY_SALES
所有LY%字段均来自LY_SALES
并基于PIVOT_NAME
也就是说,如果“ PIVOT_NAME = P1,那么我想填充TY_P1_SALES
和LY_P1_SALES
,依此类推。
答案 0 :(得分:0)
此pivot
提供所需的输出:
select bkcol1, dept, year_pd, tran_date,
p1_ty, p2_ty, p3_ty, p4_ty, p5_ty,
p1_ly, p2_ly, p3_ly, p4_ly, p5_ly
from input
pivot (sum(ty_sales) ty, sum(ly_sales) ly for pivot_name in ('P1' p1, 'P2' p2, 'P3' p3, 'P4' p4, 'P5' p5))
order by dept, tran_date
如果需要其他列,请为这些列添加别名。