Pivot Issue ORA-00918 列定义不明确

Pivot Issue ORA-00918 column ambiguously defined

我是运行下面的查询,需要将行输出为列。当我添加第二个 MAX 语句时,出现错误 ORA-00918 column ambiguously defined。不确定我做错了什么。任何帮助将不胜感激。

SELECT * from ( 
SELECT a.REF_NUM as "Number", a.SUMMARY, a.DESC_SEARCH as "Description", a.Status, e.Label, e.Value
        FROM ca a,
        cr_prp e
    WHERE 
        a.PERSID = e.OWNING_CR
        AND a.CATEGORY = '16996807'
        ORDER by a.REF_NUM DESC)t
    PIVOT
    (
    MAX(CASE WHEN LABEL = 'Plan/UnPlanned' THEN Value END),
    MAX(CASE WHEN LABEL = 'Reason for' THEN Value END),
    MAX(CASE WHEN LABEL = 'Name & "ID"' THEN Value END)
    FOR LABEL
    IN ('Plan/UnPlanned',
        'Reason for',
        'Name & "ID"')
    )

可能需要这样的东西

select * from tab
    PIVOT
    (
    MAX(Value)
    FOR LABEL
    IN ('Plan/UnPlanned' as PU,
        'Reason for' as R,
        'Name & "ID"' as NI)
 )  


    Number    SUMMARY D     STATUS         PU          R         NI
---------- ---------- - ---------- ---------- ---------- ----------
         2          2 z          2                                1
         1          1 x          1          2                      
         2          2 y          2                     1

即1) 给你添加别名 pivot 标签

  1. 不要乘以 MAX 计算,PIVOT 有责任为每个 标签计算 max