2015-04-03 4 views
0

У меня есть столбцы таблицы, такие как Question_Id, Department_Id, Value.Oracle Как установить сводную таблицу Sql

Вот мои данные:

enter image description here

enter image description here

Я хочу, чтобы получить таблицу, как это:

Вот мой код:

SELECT * 
FROM (SELECT question_id, department_id, TO_NUMBER(value) 
     FROM my_pivot_table) 
     PIVOT (SUM(TO_NUMBER(value)) AS sum_quantity FOR (department_id) IN (11 AS a, 12 AS b, 13 AS c, 14 AS d, 5 as e)) 

ORDER BY question_id; 

I получить это erro г, но я не то, что неправильно

ORA-01722: invalid number 
01722. 00000 - "invalid number" 
*Cause:  
*Action: 

EDIT:

Я выпустил, что мое значение столбца VARCHAR. Поэтому я немного изменил свой код, но все же я не получил свою сводную таблицу.

+1

Убедитесь, что тип данных 'value' является номером и нет необходимости писать кавычки в списке' (11, а, 12, б, 13 AS c, 14 AS d, 5 as e) 'должен работать. – San

+1

И некоторые образцы данных, пожалуйста? –

+0

Я изменил свой код. спасибо – ispanak

ответ

0

Похоже, вам нужно переместить скобка:

SELECT * 
FROM (SELECT question_id, department_id, TO_NUMBER(value) 
     FROM my_pivot_table -- right parenthesis was here 
     PIVOT (SUM(TO_NUMBER(value)) AS sum_quantity 
       FOR (department_id) IN (11 AS a, 12 AS b, 13 AS c, 
        14 AS d, 5 as e))) -- and moved here 
ORDER BY question_id;