ORACLE 10G中的PIVOT

时间:2016-04-29 06:45:25

标签: oracle10g

我在ORACLE 10G中有以下表格: -

AUTOID PLAN_DATE ITEM_CODE QTY

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

1 个答案:

答案 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