Ik probeer een eenvoudige form te maken in access waarmee voor een vak van alle deelnemende studenten kan worden opgevraagd welke vakken zij daarvoor hebben gevolgd. Er zijn twee tabellen, 1 met de vakinschrijvingen ("cursuskandidaten") en 1 met de resultaten per student ("tentamenresultaten"). Teneinde een overzicht te krijgen van welke vakken de studenten gevolgd hebben (zoveel % vak X met gemiddeld cijfer Y en standaard deviatie Z) doe ik:
Dat werkt goed. Nu wil ik eigenlijk ook nog weer kunnen geven hoeveel % een onvoldoende heeft gehaald voor een achtergrondvak. Daarvoor een aparte query opstellen is op zich niet zo lastig (ik zou bij de where clausule een "AND RES_RESULTAAT < 6" toevoegen), maar idealiter gebeurt dit samen in 1 query: dus zowel het percentage studenten dat het vak gevolgd heeft, als het percentage onvoldoendes. En dan zo efficient mogelijk, aangezien de tabellen vrij groot zijn, dus hij zou niet nog een keer de hele tabel door moeten lopen.
Mijn vraag is: hoe kan ik dit het beste doen?
Alvast heel erg bedankt!
code:
1
2
3
4
5
6
7
8
9
10
11
| Dim strSQL As String
strSQL = "SELECT STV_KODE AS Gevolgd_Vak, COUNT(RES_RESULTAAT)/(SELECT COUNT (STU_NUMMER) FROM [SOCW cursuskandidaten] WHERE CSG_STV_KODE = '" & Me.DoelVakBox.Value & "') * 100 AS Procent_Studenten, Avg(RES_RESULTAAT) AS Gemiddelde_Cijfer, StDev(RES_RESULTAAT) AS StDev " & _
"FROM [SOCW tentamenresultaten] " & _
"WHERE STU_NUMMER IN (SELECT STU_NUMMER FROM [SOCW cursuskandidaten] WHERE CSG_STV_KODE = '" & Me.DoelVakBox.Value & "') " & _
"AND STV_KODE LIKE '" & Me.AchtergrondVakBox.Value & "' " & _
"GROUP BY STV_KODE " & _
"HAVING COUNT (RES_RESULTAAT) > " & Me.AantalBox.Value & " " & _
"ORDER BY COUNT(RES_RESULTAAT) DESC;"
qdf.SQL = strSQL
DoCmd.OpenQuery "Test" |
Dat werkt goed. Nu wil ik eigenlijk ook nog weer kunnen geven hoeveel % een onvoldoende heeft gehaald voor een achtergrondvak. Daarvoor een aparte query opstellen is op zich niet zo lastig (ik zou bij de where clausule een "AND RES_RESULTAAT < 6" toevoegen), maar idealiter gebeurt dit samen in 1 query: dus zowel het percentage studenten dat het vak gevolgd heeft, als het percentage onvoldoendes. En dan zo efficient mogelijk, aangezien de tabellen vrij groot zijn, dus hij zou niet nog een keer de hele tabel door moeten lopen.
Mijn vraag is: hoe kan ik dit het beste doen?
Alvast heel erg bedankt!