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
标签
- 不要乘以
MAX
计算,PIVOT
有责任为每个 标签计算 max
。
我是运行下面的查询,需要将行输出为列。当我添加第二个 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
标签
- 不要乘以
MAX
计算,PIVOT
有责任为每个 标签计算max
。