Сводные строки в столбец - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь повернуть строку к столбцу. Я использовал функцию 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

Я знаю причину ошибки, поскольку столбец сводных данных не имеет одинакового количества выходных данных.

Есть ли способ использовать его в запросе?

Я хочу видеть значения от строки к столбцу с остальными данными. Я буду признателен за любую помощь.

...