Pomoc przy zapytaniu - TSQL (not in / not exists / inne ?)

0

Witam,
Bardzo proszę o pomoc.

Jak poprawnie napisać zapytanie w MS SQL gdzie pracując na jednej tabeli o nazwie xxx wyciągnę konkretne dane bez dubli na numerach Klienta?
Poniżej podaje przykład:

Tabela
screenshot-20181216213446.png

Jeden klient może posiadać więcej niż jeden rodzaj produktu, chciałabym

  • wyciągnąć numery Klientów, którzy posiadają produkt_1, następnie wśród pozostałych Klientów,
  • wyciągnąć numery Klientów, którzy posiadają produkt_2, następnie wśród pozostałych Klientów,
  • wyciągnąć numery Klientów, którzy posiadają produkt_3

wynik jaki chciałabym uzyskać z powyższej tabeli to:

numer klienta nazwa produktu
kl00001 prod_A
kl00002 prod_A
kl00003 prod_B
kl00004 prod_A
kl00005 prod_C

Każdy Klient musi pojawić się tylko raz!

select distinct
numer klienta,
'prod_A'  as typ_produktu
from XXX
where nazwa produktu='produkt_1'

not in / not exists / inne?

select distinct
numer klienta,
'prod_B'  as typ_produktu
from XXX
where nazwa produktu='produkt_2'

not in / not exists / inne?

select distinct
numer klienta,
'prod_C'  as typ_produktu
from XXX
where nazwa produktu='produkt_3'

Czego użyć pomiędzy zapytaniem ? Chyba że jest na to zupełnie inny sposób?

Dzięki

0
Select *
From (select row_number() over (partition by [numer klienta] order by typ_produktu) r , * from xxx) dr where r=1

1 użytkowników online, w tym zalogowanych: 0, gości: 1