Jag ska loopa igenom en klass med personer och få deras närvaro för alla lektioner i en kurs.
Jag har följande tabeller: anvandare
anvandarID
anvandarFornamn
lektioner
lektionID
kursID
lektionDatum
narvaro (ej närvarande så finns ingen rad med lektionID och anvID)
anvandarID
lektionID
kurser
kursID
kursNamn
kursmedlemskap
anvandarID
kursID
Vill sedan få utskriften så här:
Ampe 2005-10-31 10:40 Närvarande
Ampe 2005-11-05 10:40 Ej närvarande
Ampe 2005-11-06 10:40 Närvarande
Ampe 2005-11-10 10:40 Närvarande
Lisa 2005-10-31 10:40 Närvarande
Lisa 2005-11-05 10:40 Närvarande
Lisa 2005-11-06 10:40 Ej närvarande
Lisa 2005-11-10 10:40 Ej närvarande
Nina 2005-10-31 10:40 Närvarande
Nina 2005-11-05 10:40 Närvarande
Nina 2005-11-06 10:40 Ej närvarande
Nina 2005-11-10 10:40 Närvarande
Denna sql sats fungerar men är det ett bra sätt att göra det på?
Select a.*, l.lektionDatum,
iif((Select Count(*) from narvaro as n where a.anvandarID = n.anvandarID and l.lektionID = n.lektionID) > 0,'n','f') as narvaro
From anvandare a, lektioner as l, kursmedlemskap as km
Where l.kursID = 18
And km.kursID = 18
And km.anvandarID = a.anvandarID
Order by a.anvandarFornamn, a.anvandarEfternamn, l.lektionDatum ASC
258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e