有没有办法在 Netezza 中动态命名旋转列?在 SSMS 中,我会使用存储过程,但我们的新 Netezza 框限制了 SP 的创建。使用 CASE 语句,我可以使用行号按月旋转每日总和,但我希望新列名是实际的任意 MONTHID 而不是行号(MONTH_ID1 包含 ROW_NUMBER 1-12 和相应的 MONTHID)。例如,我正在考虑战略性地放置引文和子查询——但我无法让它发挥作用。
select "DAY"
,sum(case when "ROW_NUMBER" = 1 then SUMOFCHGS else null end) as "1"
,sum(case when "ROW_NUMBER" = 2 then SUMOFCHGS else null end) as "2"
,sum(case when "ROW_NUMBER" = 3 then SUMOFCHGS else null end) as "3"
,sum(case when "ROW_NUMBER" = 4 then SUMOFCHGS else null end) as "4"
,sum(case when "ROW_NUMBER" = 5 then SUMOFCHGS else null end) as "5"
,sum(case when "ROW_NUMBER" = 6 then SUMOFCHGS else null end) as "6"
,sum(case when "ROW_NUMBER" = 7 then SUMOFCHGS else null end) as "7"
,sum(case when "ROW_NUMBER" = 8 then SUMOFCHGS else null end) as "8"
,sum(case when "ROW_NUMBER" = 9 then SUMOFCHGS else null end) as "9"
,sum(case when "ROW_NUMBER" = 10 then SUMOFCHGS else null end) as "10"
,sum(case when "ROW_NUMBER" = 11 then SUMOFCHGS else null end) as "11"
,sum(case when "ROW_NUMBER" = 12 then SUMOFCHGS else null end) as "12"
FROM DLYAMTS D
JOIN MONTH_ID1 M ON D.MONTHID = M.MONTHID
GROUP BY 1
ORDER BY 1
我可以设想将来使用可变数量的列来执行此操作,但我现在只是在寻找一年的月份列。