Pomoc przy zapytaniu - TSQL

0

Cześć,
Proszę o pomoc. Uczę się :)
Niestety nie potrafię precyzyjnie określić tematu dla tego problemu.

Potrzebuje uzyskać maksymalną wartość z porównania dwóch kolumn dla danego rekordu (przedstawię to na numerach pesel).
Poniżej objaśniam o co chodzi:

Przykładowa tabela
screenshot-20180325180418.png
wynik który chciałabym uzyskać to
screenshot-20180325180709.png

W momencie kiedy opieram zapytanie na iif lub case, np.

select distinct 
	Imie
	,Nazwisko
	,pesel
	,iif(Kolumna_A='1' or Kolumna_X='1','1', iif(Kolumna_A='2' or Kolumna_X='2','2','0')) as Nowy_AX
	,iif(Kolumna_B='1' or Kolumna_Z='1','1', iif(Kolumna_B='2' or Kolumna_Z='2','2','0')) as NowyBZ
	,iif(Kolumna_C='1' or Kolumna_Y='1','1', iif(Kolumna_C='2' or Kolumna_Y='2','2','0')) as NowyCY
from XX.dbo.TABELA_TEST

lub

select distinct 
	Imie
	,Nazwisko
	,pesel
	,case 
	when Kolumna_A='1' or Kolumna_X='1' then '1'
	when Kolumna_A='2' or Kolumna_X='2' then '2'
	else '0'
	end as Nowy_AX
	,case 
	when Kolumna_B='1' or Kolumna_Z='1' then '1'
	when Kolumna_B='2' or Kolumna_Z='2' then '2'
	else '0'
	end as NowyBZ
	,case 
	when Kolumna_C='1' or Kolumna_Y='1' then '1'
	when Kolumna_C='2' or Kolumna_Y='2' then '2'
	else '0'
	end as NowyCY
from XX.dbo.TABELA_TEST

otrzymuje następujący wynik:
screenshot-20180325182056.png

Jak mogę otrzymać Imię, Nazwisko, pesel, i tylko **maksymalną ** wartość z reszty kolumn?

Na co trzeba zwrócić uwagę:

  • kolumna o nazwie "system" definiuje dwie nazwy systemów A oraz B (dla systemu A wartości występują w kolumnach: Kolumna_A, Kolumna_B, Kolumna_C, dla systemu B wartości występują w kolumnach: Kolumna_X, Kolumna_Y, Kolumna_Z) niestety taką tablę już otrzymuję i nie mogę tego zmienić

Dziękuję za pomoc.
Pozdrawiam

1
select
  pesel,
  max(case when system = 'A' then Kolumna_A else Kolumna_X end) Kolumna_AX,
  max(case when system = 'A' then Kolumna_B else Kolumna_Z end) Kolumna_BZ,
  max(case when system = 'A' then Kolumna_C else Kolumna_Y end) Kolumna_CY
from
  tabela
group by
  pesel
0

Dziękuję, problem rozwiązany

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