Здравствуйте,
SQL Pivot работает не так как задумывал и я не могу найти проблему. Возможно вы сможете помочь.
Ситуация:
Есть база данных скажем опросника. Мне нужные 3 колонки это Человек, Вопрос и Ответ (конечно колонок намного больше).
Хранится все это в таком виде:
Человек 1, Вопрос 1, Ответ на вопрос 1
Человек 1, Вопрос 2, Ответ на вопрос 2
Человек 1, Вопрос 3, Ответ на вопрос 3
Человек 2, Вопрос 1, Ответ на вопрос 1
Человек 2, Вопрос 2, Ответ на вопрос 2
{ProcedureId, TokenValue, HtmlValue]
и тд.
Вот так:
Я пытаюсь модифицировать SQL query и отобразить в Excel 2007 (есть необходимость именно в это версии, на других реализовано просто с power query)
Select ProcedureId, [3_1_explain_alert_system_and_boosters_required], [1_1_patient_blacklist_checked]
FROM
(
select * from ProcedureStepsDetails
) As Temp
PIVOT
(
max([HtmlValue])
FOR [TokenValue] In([3_1_explain_alert_system_and_boosters_required], [1_1_patient_blacklist_checked])
) As pt
По коду - [3_1_explain_alert_system_and_boosters_required], [1_1_patient_blacklist_checked] это айди вопросов.
Данный код относительно работает, но он я думал что он будет отображать человек как 1 единицу, вот так:
Человек * Вопрос 1 * Вопрос 2 * Вопрос 3
Человек1 Ответ 1 Ответ 2 Ответ 3
Человек2 Ответ 1 null Ответ 3
а он
Человек * Вопрос 1 * Вопрос 2 * Вопрос 3
Человек1 Ответ 1 null null
Человек1 null null null
Человек1 null null Ответ 3
Человек1 null null null
Человек1 null null null
Что мне нужно поменять в данном SQL Query?
Уже долго мучаюсь, не могу понять причину.