2014-10-02 53 views
-1

一個新手here..Actually我在甲骨文vw_summary一個表作爲的Sql透視和逆透視

Onum | Uacheck | Uadesc | AU11 | AU12 | BD10 | 
---------------------------------------------------------- 
1 | 5.1 | VENDOR | 0 | 0 | 0 | 

2 | 5.2A | CUST | 0 | 0 | 0 | 

,我需要顯示的數據: -

Onum | PLant | 5.1 - VENDOR | 5.2A - CUST 
--------------------------------------------------- 

1  | AU11 | 0    | 0 

2  | AU12 | 0    | 0 

3  | BD10 | 0    | 0 

即我需要的列AU11, AU12, BD10到成爲我的工廠專欄 的行以及UACHECK || UADESC的每個級聯以成爲行。

+0

唐'你的意思是5.2A列? – Mihai 2014-10-02 12:06:44

+0

yes..sorry..a打字錯誤..你可以幫助.. – 2014-10-02 12:08:04

回答

0

試試這個:

WITH T1 AS (SELECT * 
      FROM vw_summary UNPIVOT (plantvalue 
          FOR plant 
          IN (AU11, AU12, BD10))), 
    T2 
     AS (SELECT UACHECK, 
        UADESC, 
        PLANT, 
        PLANTVALUE, 
        ROW_NUMBER() OVER (PARTITION BY UADESC ORDER BY UADESC) 
         AS NUM 
       FROM T1) 
SELECT * 
    FROM t2 PIVOT (MIN (PLANTVALUE) 
      FOR (UADESC, UACHECK) 
      IN (('VENDOR', '5.1') AS "5.1 - VENDOR", 
       ('CUST', '5.2A') AS "5.2A - CUST")); 
+0

我想要硬編碼值..我想通過連接uadesc從選擇查詢中獲取值。 uacheck ..bcz我在表中有太多的行.. – 2014-10-02 13:36:46

+0

對不起,但你不能像'pivot xml'那樣做動態'pivot',至少在sql – Aramillo 2014-10-02 14:27:00

+0

中我們沒有任何pl-sql概念在一些動態獲取可能通過變量?加上上面的代碼是給我「缺少括號」錯誤..我檢查了所有的括號..其中是我無法找到的錯誤.. – 2014-10-02 14:34:43