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
wynik który chciałabym uzyskać to
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:
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