Редактировать: это не динамический вывод, структура представления вывода фиксирована.
Я пытаюсь создать представление SQL Server, которое отображает одну фиксированную строку столбца для каждого пользователя и выравнивает таблицу, связанную с несколькими, в эту строку.
Хотя связанная таблица имеет отношение один ко многим, структура выходной таблицы ограничена 4 элементами из этой таблицы.
Моя структура таблицы выглядит так:
User (Id, FirstName, LastName)
Assessment (Id, Date, Location, User_Id)
Topics (Id, Topic, Assessment_Id)
Когда оценка присоединяется к пользователю с помощью идентификатора пользователя (один 2 один), а темы присоединяются к оценке с помощью идентификатора оценки.
Итак, если у меня есть три темы для оценки, я бы хотел, чтобы представление выглядело примерно так:
User_Id | FirstName | LastName | Date | Location | Topic1 | Topic2 | Topic3 | Topic4 |
1 | dave | toby | 2/2/11 | In situ | apples | pears | lemons | NULL |
Мой текущий SQL выглядит так:
SELECT User.Id, User.FirstName, User.LastName, Assessment.Date, Assessment.Location, Topic.Topic
FROM User LEFT OUTER JOIN
Assessment INNER JOIN
Topic ON Assessment.Id = Topic.Assessment_Id ON
User.Id = Assessment.User_Id
Но это возвращает строку для каждой проблемы - она не сжимает их до одной строки. Я играл с несколькими разными объединениями, но не смог добиться желаемого поведения.
Возможно ли сделать это в виде?
Что мне нужно сделать, чтобы это произошло ??
Спасибо!