/ / Jak wyświetlić wszystkie trzy różne liczby (Praca, Dom, Komórka) dla klienta w kolumnie nad rzędami? - sql, sql-server, tsql

Jak wyświetlić wszystkie trzy różne liczby (Praca, Dom, Komórka) dla klienta w kolumnie nad wierszami? - sql, sql-server, tsql

Mam bardzo unikalny wymóg wyświetlania numeru telefonu z 3 różnych kolumn w jednej kolumnie

Otrzymuję wynik następujący z kwerendy sql, które dają mi numer kontaktowy dla wszystkich aktywnych klientów teraz w systemie.

wprowadź opis obrazu tutaj

Chciałbym przekonwertować wszystkie kolumny kolumn w jedną kolumnę.

wprowadź opis obrazu tutaj

Proszę pomóż.

Oto moje zapytanie, z którego uzyskuję wynik powyżej

    select
c.CLIENT_ID as "Client No",
c.[HOME_PHONE] as "Home Phone",
c.[WORK_PHONE] as "Work Phone",
c.[WORKEXT] as "Work Ext",
c.[CCELL] as "Cell Phone",
"" as Assignment_ID,
"Office-Paris’ as "Office",
"1F65781E-78F6" as Owner
FROM CLIENTS c
left join    (
select  row_number() over (
partition by CLIENT_ID
order by startdate desc) as rn
,       CLIENT_ID
,       STATUS
,STOPDATE
,       DEPT_ID
from    CLTSTATES
where   STARTDATE <= "2016-09-08"and DEPT_ID="R0000000001"
) h
on      c.CLIENT_ID = h.CLIENT_ID
and h.rn = 1 -- Only last row
where   h.STATUS = "A"
order by c.CLIENT_ID

Odpowiedzi:

2 dla odpowiedzi № 1

Niech to zadziała, proszę przetestować, ponieważ nie mam danych -

select
[Client No],
[Phone],
[Assignment_ID],
[Office],
[Owner]
from (
select
c.[CLIENT_ID] as "Client No",
c.[HOME_PHONE] as "Home Phone",
c.[WORK_PHONE] as "Work Phone",
c.[WORKEXT] as "Work Ext",
c.[CCELL] as "Cell Phone",
"" as Assignment_ID,
"Office-Paris" as "Office",
"1F65781E-78F6" as Owner
FROM CLIENTS c
left join    (
select  row_number() over (
partition by CLIENT_ID
order by startdate desc) as rn
,       CLIENT_ID
,       STATUS
,STOPDATE
,       DEPT_ID
from    CLTSTATES
where   STARTDATE <= "2016-09-08"and DEPT_ID="R0000000001"
) h
on      c.CLIENT_ID = h.CLIENT_ID
and h.rn = 1 -- Only last row
where   h.STATUS = "A"
) x
unpivot
( Phone for different_location in ([Home Phone], [Work Phone], [Work Ext], [Cell Phone])
) u
order by CLIENT_ID

1 dla odpowiedzi nr 2
Select ClientNo, phone = HomePhone, AssignmentId, Office, Guid From Blah Blah
union all
Select ClientNo, phone = WorkPhone, AssignmentId, Office, Guid From Blah Blah
union all
Select ClientNo, phone = CellPhone, AssignmentId, Office, Guid From Blah Blah


-- Etc.