Я пытаюсь повернуть строку к столбцу. Я использовал функцию Pivot, но когда я пытаюсь использовать это с реальным запросом, это выдает мне ошибку.
Этот код прекрасно работает, если я запускаю его отдельно, он дает мне правильный вывод
1)
(
SELECT N.PROJECTID,
MAX(CASE WHEN N.QUESTIONID = '1' THEN N.ANSWER END ) QUESTION1,
MAX(CASE WHEN N.QUESTIONID = '2' THEN N.ANSWER END ) QUESTION2,
MAX(CASE WHEN N.QUESTIONID = '3' THEN N.ANSWER END ) QUESTION3,
MAX(CASE WHEN N.QUESTIONID = '4' THEN N.ANSWER END ) QUESTION4,
MAX(CASE WHEN N.QUESTIONID = '5' THEN N.ANSWER END ) QUESTION5
FROM PETE.VW_NOMCRQUESTIONNAIRE N
GROUP BY N.PROJECTID
);
2)
SELECT * FROM
(
SELECT PROJECTID, QUESTIONID, ANSWER FROM PETE.VW_NOMCRQUESTIONNAIRE
)
PIVOT
(
Max(answer)
FOR QUESTIONID IN (1 AS QUESTION_1,2 AS QUESTION_2,3 AS QUESTION_3,4 AS
QUESTION_4,5 AS QUESTION_5)
);
Я хочу использовать и то, и другое в реальном запросе с несколькими объединениями. это дает мне ошибку вроде
ORA-00913: слишком много значений
00913. 00000 - «слишком много ценностей»
* Причина:
* Действие:
Ошибка в строке: 67 Колонка: 5
Я знаю причину ошибки, поскольку столбец сводных данных не имеет одинакового количества выходных данных.
Есть ли способ использовать его в запросе?
Я хочу видеть значения от строки к столбцу с остальными данными. Я буду признателен за любую помощь.