Sql Server Pivot с таблицей поиска - PullRequest
1 голос
/ 01 сентября 2011

Я просмотрел большинство примеров сводных таблиц, но я еще не нашел такой же сценарий (плюс, я, вероятно, не в своей лиге с этим).

У меня естьТаблица сотрудников, таблица атрибутов и таблица поиска, которая соответствует сотрудникам и атрибутам:

dbo.Employees
employee_ID INT
employee_name NVARCHAR(50)
employee_ID | employee_name 
1           | Joe Smith
2           | Don Johnson    
dbo.Attributes
attribute_ID INT
attribute_description NVARCHAR(50)
attribute_ID | attribute_description
50           | Works Weekends
55           | Wears Hats
61           | Enjoys Baseball 
dbo.EmployeeAttributes
employee_attribute_ID INT
employee_ID_fk INT
attribute_ID_fk INT
employee_attribute_ID | employee_ID_fk | attribute_ID_fk
20                    | 1              | 50
21                    | 2              | 61
22                    | 2              | 55

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

employee_ID | employee_name | Works Weekends | Wears Hats | Enjoys Baseball
1           | Joe Smith     | 1              | 0          | 1
2           | Don Johnson   | 0              | 1          | 0

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 01 сентября 2011

У меня сейчас немного не по времени, но я не могу не дать вам несколько советов.

  1. Соберите свой основной (не сводный) запрос. Вы должны использовать пару LEFT JOIN между вашими столами. Получив это, перейдите к Pivoting.
  2. Посмотрите, что я написал для Dynamic PIVOT:
...