webForumDet fria alternativet

Närvarande eller ej närvarande på lektion

Databaser & SQL

1 svar · 220 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

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

Medlem sedan jan. 20013 406 inlägg
#2

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
256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)