Не удается получить желаемые результаты с помощью оператора поворота в SQL Server - PullRequest
0 голосов
/ 12 ноября 2019

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

Вот пример данных в таблице «Сотрудники»:

DataPoint  Populated
name       Ram
email      ram@gmail.com
age        23
name       Shyam
email      shyam23@gmail.com
age        28
name       John
email      john@gmail.com
age        33
name       Bob
email      bob32@gmail.com
age        41

Вот что я хочу:

name   email                age
Ram    ram@gmail.com        23
Shyam  shyam23@gmail.com    28
John   john@gmail.com       33
Bob    bob32@gmail.com      41

Вот мой код:

;WITH NeedToPivot AS(
 SELECT *
 FROM Employees)

 SELECT *
 FROM NeedToPivot
 PIVOT(MAX(Populated) FOR DataPoint IN("name","email","age"))x

Вот что он возвращает:

name    email               age
Shyam   shyam23@gmail.com   28

1 Ответ

2 голосов
/ 12 ноября 2019

Основываясь на отзывах Шона Ланге, я добавил столбец EmployeeId в таблицу Employees. Оператор сводки теперь понимает мою желаемую группировку, и запрос возвращает именно то, что я хочу.

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

EmployeeId    DataPoint  Populated
1              name       Ram
1              email      ram@gmail.com
1              age        23
2              name       Shyam
2              email      shyam23@gmail.com
2              age        28
3              name       John
3              email      john@gmail.com
3              age        33
4              name       Bob
4              email      bob32@gmail.com
4              age        41
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...