T SQL Функция окна - PullRequest
       80

T SQL Функция окна

0 голосов
/ 09 июля 2020

У меня есть таблица с тремя столбцами:

Survey   QuestionName   SurveyQuestion     SurveyAnswer
1859     Satisfied?     1                  Yes
1859     Comments?      2                  Happy with outcome, thanks
1859     Phone Number?  3                  Not Answered
2000     Satisfied?     1                  No
2000     Comments?      2                  Rep was a d1ck. 
2000     Phone Number?  3                  5166569999

В итоге я хочу получить следующую таблицу (Примечание: SurveyQuestion # 3 не требуется)

Survey   SurveyAnswer1    SurveyAnswer2     
1859     Yes              Happy with outcome, thanks
2000     No               Rep was a d1ck.                            

Я просто не могу придумать, как это сделать ... Я пробовал несколько способов, включая LEAD / LAG, но не могу заставить его работать ... Я думаю, мне просто нужно, чтобы кто-то укажи мне верное направление

1 Ответ

0 голосов
/ 09 июля 2020

Это четыре столбца;)

Вы можете использовать старый каштан агрегирования как перекрестной таблицы:

select   Survey,
         SurveyAnswer1 = max(iif(SurveyQuestion = 1, SurveyAnswer, null)),
         SurveyAnswer2 = max(iif(SurveyQuestion = 2, SurveyAnswer, null))
from     YourTable
where    SurveyQuestion != 3
group by Survey
...