Я выбираю данные, относящиеся к определенным клиентам, из нескольких таблиц, где данные одного клиента охватывают несколько строк, однако я хотел бы, чтобы повторяющиеся записи были объединены в одну строку. Один из основных примеров будет следующим
+------------+-------+-------------------------------+
| ClientCode | Name | Email |
+------------+-------+-------------------------------+
| CAL01 | Doug | [email protected] |
| CAL01 | Doug | [email protected] |
| MER03 | Jane | [email protected] |
| MER03 | Jane | [email protected] |
| MER03 | Jane | [email protected] |
+------------+-------+-------------------------------+
Результаты, которые я ищу, будут больше похожи на
+------------+-------+-------------------+-------------------+-----------------------+
| ClientCode | Name | Email1 | Email2 | Email3 |
+------------+-------+-------------------+-------------------+-----------------------+
| CAL01 | Doug | itsjustdoug@inte | [email protected] | NULL |
| MER03 | Jane | janehasemail@ema | [email protected] | janehatesspam@justfor |
+------------+-------+-------------------+-------------------+-----------------------+
Вот что я пробовал.
Select * From
(Select
ClientCode
,Name
,Email
From dbo.Clients) T
PIVOT(Max (Email) for Email in (Email1, Email2, Email3)) T2
Это не кажется правильным способом достижения того, чего я хочу. Мы ценим любые предложения. Стоит отметить, что фактический запрос намного сложнее и содержит много объединений и, возможно, несколько разных случаев, где я бы использовал этот вид «поворота?».
Спасибо