Объединение двух таблиц с отношением 1: M в одно представление с различными записями - PullRequest
0 голосов
/ 28 марта 2019

Пример того, что я пытаюсь сделать Работа с TSQL:

У меня есть две таблицы, таблица учеников и таблица расы.Каждый ученик в таблице учеников имеет 1 запись.У каждого студента в таблице Race есть несколько записей, по 1 на каждую расу.Я пытаюсь объединить таблицы в представление, где у меня есть 1 запись для каждого студента, и каждая из их рас перечислены в отдельных столбцах.Буду очень признателен за любую помощь или совет!

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

SELECT DISTINCT
    st.[STUDENTS First_Name], st.[STUDENTS Last_Name], st.[STUDENTS 
    State_StudentNumber], CASE WHEN sr.[STUDENTRACE RaceCd] = 'W' THEN 'W' END White, CASE WHEN sr.[STUDENTRACE RaceCd] = 'B' THEN 'B' END Black, CASE WHEN sr.[STUDENTRACE RaceCd] = 'I' THEN 'I' END Indian, 
    CASE WHEN sr.[STUDENTRACE RaceCd] = 'A' THEN 'A' END Asian, CASE WHEN sr.[STUDENTRACE RaceCd] = 'P' THEN 'P' END [Pacific Islander], CASE WHEN sr.[STUDENTRACE RaceCd] = 'H' THEN 'H' END Hispanic, CASE WHEN sr.[STUDENTRACE RaceCd] = 'M' THEN 'M' END [Multiple Races]
FROM ps_students_export AS st
JOIN ps_StudentRace_export AS sr on sr.[STUDENTRACE StudentID] = st.[STUDENTS ID]
WHERE st.[STUDENTS Enroll_Status] = 0
GROUP BY st.[STUDENTS First_Name], st.[STUDENTS Last_Name], st.[STUDENTS State_StudentNumber], sr.[STUDENTRACE RaceCd]
ORDER BY st.[STUDENTS State_StudentNumber];

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...