Я нашел похожие вопросы, но ничего, что имеет решение, я смог сделать для меня работу. Я был вне практики и застрял на этом.SQL Server: отображение нескольких строк в одной строке и нескольких столбцов
У меня есть таблица, которая отслеживает позиции сотрудников. Каждый сотрудник может иметь любое количество активных позиций. Я хочу показать каждого сотрудника как одну запись со всеми их позициями в этой записи, охватывающей несколько столбцов.
Взгляд на данные показывает, что нет сотрудников с более чем 6 активными позициями, и поскольку это одноразовый запрос, я должен работать с этим номером.
Все позиции имеют порядковый номер, но они не в удобном порядке - неактивные позиции для сотрудника сохраняют порядковый номер.
Так что сейчас у меня есть что-то, что выглядит следующим образом:
ID | Name | Title | Cat | Seq
------------------------------
10 | John | Asst. | HR | 13
10 | John | Tutor | EDU | 17
11 | Sue | Mgr | PA | 6
11 | Sue | Adj. | EDU | 7
11 | Sue | Tutor | EDU | 13
...
11 | Sue | Asst. | HR | 22
Но я хочу, чтобы выглядеть следующим образом:
ID | Name | Title 1 | Cat 1 | Title 2 | Cat 2 | Title 3...| Title 6 | Cat 6
----------------------------------------------------------------------------
10 | John | Asst. | HR | Tutor | EDU | NULL | NULL | NULL
11 | Sue | Mgr. | PA | Adj. | EDU | Tutor | Asst. | HR
Позвольте мне знать, какую дополнительную информацию я должен предоставить.
Вы, вероятно, будет в конечном итоге в области 'PIVOT's, они могут быть немного трудно работать в контексте того, что вы пытаюсь сделать, особенно если вы попытаетесь создать динамическое число столбцов. Такой подход противоречит принципам РСУБД, поскольку вы денормализуете свои данные. – CactusCake
Ух, я боялся, что поворот будет предложением. re: Denormalizing, это просто для одноразового дампа данных, поэтому в этом случае это не проблема. – Jana
Если это некоторая вещь, я бы предложил добавить столбец «ROW_NUMBER() поверх (PARTITION BY ID ORDER BY Cat, Title)», то вы можете использовать его как индекс в Excel или какую-либо другую программу для переноса данных. – CactusCake