Cześć mam taką bazę danych
Tabela Wizyty ( IdWizyty, IdLekarza, IdPacjenta, DataWizyty, Oplata)
Tabela Pacjenci (IdPacjenta, Nazwisko, Imie, Pesel, DataUrodzenia, Plec)
Tabela Lekarze (IdLekarza, Nazwisko, Imie , DataUrodzenia, NIP, Plec, IdSpecjalizacji)
Tabela Specjalizacje (IdSpecjalizacji, NazwaSpecjalizacji)
zrobić zestawienie zawierające następujące dane; nazwisko, imię pacjentów, którzy 25 kwietnia 2016 byli u kardiologa lub diabetologa a nie byli u lekarza rodzinnego w całym roku 2016
Oto mój kod:
WITH TMP as
(
select P.Nazwisko,P.Imie,P.Pesel
,sum(CASE WHEN L.Idspecjalizacji = 5 THEN 1 ELSE 0 END) as ileWizytKardiolog
,sum(CASE WHEN L.Idspecjalizacji = 6 THEN 1 ELSE 0 END) as ileWizytDiabetolog
,sum(CASE WHEN L.Idspecjalizacji = 1 THEN 1 ELSE 0 END) as ileWizytRodzinny
from Wizyty as W
inner join Pacjenci as P on W.IdPacjenta=P.IdPacjenta
inner join Lekarze as L on W.IdLekarza=L.IdLekarza
where
year (DataWizyty)=2016
group by P.Nazwisko,P.Imie,Pesel
)
Select *
from TMP
where ileWizytDiabetolog>0 or ileWizytKardiolog>0 and ileWizytRodzinny=0
O ile latwo znalezc pacjentow ktorzy w calym 2016 nie byli u rodzinnego , to jak znalezc tych ktorzy akurat 2016-04-25 byli o diabetologa lub kardiologa ?