[access] query voor selectie en groepering bedrijvendag

Pagina: 1
Acties:

  • TromboneFreakus
  • Registratie: Juli 2001
  • Laatst online: 01-08-2023
Voor de studievereniging ben ik gevraagd wat uit te denken voor de bedrijvendagen die er aan komen. Het idee is dat via het web de mensen zich moeten kunnen opgeven voor diverse workshops. Hierbij wil de organisatie oudejaars voorrang geven op de jongere studenten, wanneer ook de oudere jaars zich inschrijven. Ook moet het systeem rekening houden met 1e, 2e en 3e keuzes van de mensen voor de workshops.

Nu probeer ik dat eerst even uit in Access voor de overzichtelijkheid, om het later naar MySQL over te zetten. Dit heb ik nu gemaakt:

tabel: Personen
velden: PersoonID (index, autonummer), Voornaam, tv, Achternaam, Jaargang (dat laatste slaat op studiejaar)

tabel: Workshops
velden: WorkshopID (index, autonummer), Workshopnaam

tabel: Keuzes
velden: KeuzeID (index, autonummer), PersoonID (numeriek, verwijzend), WorkshopID (numeriek, verwijzend), Keuze (numeriek) (dit laatste ziet op 1e, 2e, 3e keuze)


Vervolgens maak ik een query als volgt:
SQL:
1
2
3
4
SELECT Personen.Jaargang, First(Workshops.Workshopnaam) AS EersteVanWorkshopnaam, Personen.Voornaam, Personen.tv, Personen.Achternaam, Min(Keuzes.Keuze) AS MinVanKeuze
FROM Personen INNER JOIN (Workshops INNER JOIN Keuzes ON Workshops.WorkshopID = Keuzes.WorkshopID) ON Personen.PersoonID = Keuzes.PersoonID
GROUP BY Personen.Jaargang, Personen.Voornaam, Personen.tv, Personen.Achternaam
ORDER BY Personen.Jaargang DESC , Personen.Achternaam;


Dit lijkt een aardig goed resultaat te geven. Het probleem treedt op zodra ik de aparte werkgroepindelingen wil oproepen. Ik pas de query dan als volgt aan:
SQL:
1
2
3
4
5
SELECT Personen.Jaargang, First(Workshops.Workshopnaam) AS EersteVanWorkshopnaam, Personen.Voornaam, Personen.tv, Personen.Achternaam, Min(Keuzes.Keuze) AS MinVanKeuze
FROM Personen INNER JOIN (Workshops INNER JOIN Keuzes ON Workshops.WorkshopID = Keuzes.WorkshopID) ON Personen.PersoonID = Keuzes.PersoonID
WHERE (((Keuzes.WorkshopID)=2))
GROUP BY Personen.Jaargang, Personen.Voornaam, Personen.tv, Personen.Achternaam
ORDER BY Personen.Jaargang DESC , Personen.Achternaam;


Probleem is dat ik nu ook alle lagere keuzes te zien krijg. Dus dankzij deze query zou iedereen in alle workshops die hij opgegeven heeft geplaatst worden, of dit nu 1e, 2e of 3e keuze is.

Hoe ondervang ik dat probleem nu?? Alvast bedankt voor het meedenken!!