Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

XML PIVOT QUERY QUESTIONS

1052718Nov 6 2013 — edited Nov 6 2013

I am new to PIVOT queries.  I was referencing the following discussion but ran into a problem.  https://forums.oracle.com/message/9393302

When I added the XML to format the data, I started getting nulls rather than the sums I was looking for.

WITH PIVOT_DATA AS (

  SELECT * FROM (

            SELECT PRIME_PART, REGION, FCST_PERIOD, FINAL_FORECAST

            FROM XYZ WHERE FCST_PERIOD >= last_day(trunc(sysdate))+1 and FCST_PERIOD <= last_day(add_months(sysdate,12)) AND PRIME_PART IN ('BLAH')

                )

                PIVOT XML (SUM (FINAL_FORECAST) FOR FCST_PERIOD IN (SELECT DISTINCT FCST_PERIOD FROM XYZ))

                )

SELECT PRIME_PART, REGION,

EXTRACTVALUE(FCST_PERIOD_XML,'/PIVOTSET/ITEM[1]/COLUMN[2FCST_PERIOD1,

EXTRACTVALUE(FCST_PERIOD_XML,'/PIVOTSET/ITEM[2]/COLUMN[2FCST_PERIOD2,

EXTRACTVALUE(FCST_PERIOD_XML,'/PIVOTSET/ITEM[3]/COLUMN[2FCST_PERIOD3

FROM PIVOT_DATA;

RESULTS IN:

PRIME_PARTREGIONFCST_PERIOD1FCST_PERIOD2FCST_PERIOD3
BLAHMIDWEST(NULL)(NULL)(NULL)
BLAHWEST-NV(NULL)(NULL)(NULL)
BLAHSOUTHEAST(NULL)(NULL)(NULL)
BLAHWEST-CA(NULL)(NULL)(NULL)
BLAHSOUTHWEST(NULL)(NULL)(NULL)
BLAHEAST(NULL)(NULL)(NULL)

The second part of my question is how would I do a group by when using a pivot query.  When I am done, I will have multiple parts and would like to group by REGION.

Thanks!

This post has been answered by odie_63 on Nov 6 2013
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 4 2013
Added on Nov 6 2013
2 comments
1,010 views