Oracle实现行转换成列
SELECT * FROM (
SELECT yy, cbzx, fylx ,mm, je
FROM CV_FNA_COST_SUM_LIST_mx
)
PIVOT (
SUM(je)
FOR mm IN ('1' as m1, '2' AS m2, '3' as m3, '4' as m4, '5' as m5, '6' as m6, '7' as m7, '8' as m8, '9' as m9, '10' as m10, '11' as m11 , '12' as m12 )
以上代码可以实现同一年,同一个成本中心,同一个费用类型下,同一行通过不同列展示1月到12月的使用费用
通俗来说,就是从下面这个表
成本中心 | 费用类型 | 年份 | 月份 | 使用金额 |
---|---|---|---|---|
财务部 | 差旅交通费 | 2024 | 1 | 1000 |
财务部 | 差旅交通费 | 2024 | 2 | 2000 |
变成如下表
成本中心 | 费用类型 | 年份 | 1月 | 2月 |
---|---|---|---|---|
财务部 | 差旅交通费 | 2024 | 1000 | 2000 |