我在ORACLE 10G中有以下表格: -
5 27-04-16 F10000010 10
7 27-04-16 F10000060 30
8 27-04-16 F10000020 10
要求OutPut是: -
日期
F10000010 F10000060 F10000020
27-04-16 10 30 10
我们知道oracle 10g中没有可用的枢轴功能。那我们怎么做呢这里Item_CODE是动态代码,可以根据日期改变。 任何帮助都将非常有用。
由于 PREM
答案 0 :(得分:0)
使用以下程序解决: CREATE OR REPLACE过程dynamic_pivot(输出sys_refcursor中的p_cursor) 如 sql_query varchar2(1000):='选择PLAN_DATE&#39 ;; 开始 for x in(选择不同的ITEM_CODE,数量来自XXES_DAILY_PLAN_TRAN,其中PLAN_DATE =' 27-04-2016') 环 sql_query:= sql_query || ' ,总和(当qty ='' || x.qty ||'''然后数量其他0结束时)为' | | x.ITEM_CODE; DBMS_OUTPUT.PUT_LINE(sql_query); 结束循环; sql_query:= sql_query || '来自XXES_DAILY_PLAN_TRAN,其中PLAN_DATE =' 27-04-2016''按照PLAN_DATE'组; DBMS_OUTPUT.PUT_LINE(sql_query); 打开p_cursor for sql_query; 端;
//调用
变量x refcursor exec dynamic_pivot(:x) print x