Ik zit met een probleem in Access wat ik met got-search en google niet opgelost krijg...
Het volgende is het geval:
drie tabellen om een n-op-m relatie vast te leggen (voor de duidelijkheid even alleen de primary's en foreign's):
Het idee lijkt me duidelijk, een persoon kan meerdere vaccinaties hebben en een vaccinaties kan bij meerdere personen horen...tot zo ver niks vreemds...
Nu heeft de tabel Vaccinaties een kolom "verplicht". Wat ik wil hebben is een query die mij geeft:
alle personen die een koppeling met vaccinatie hebben waarbij de datum+werkingsduur verlopen is, dat is gelukt:
en
alle personen waarvan géén koppeling bestaat tussen hen en een verplichte vaccinatie.
M.a.w. Alle personen die aandacht nodig hebben
Als een persoon voor 4 verplichte vaccinaties geen join heeft mag hij dus ook gerust 4 keer terug komen in de query...
Deze laatste is een probleem. Ik dacht eerst aan een FULL outer join (die in access trouwens niet eens mogelijk lijkt) maar daar ben ik niet helemaal van overtuigd... moet ik het wellicht met subqueries doen of vraag ik hier iets dat nou eenmaal niet kan?
Wie helpt?
Het volgende is het geval:
drie tabellen om een n-op-m relatie vast te leggen (voor de duidelijkheid even alleen de primary's en foreign's):
code:
1
2
3
| Persoon - id kpl_vaccinatie - id, vacinatieId, persoonId Vacinaties - id |
Het idee lijkt me duidelijk, een persoon kan meerdere vaccinaties hebben en een vaccinaties kan bij meerdere personen horen...tot zo ver niks vreemds...
Nu heeft de tabel Vaccinaties een kolom "verplicht". Wat ik wil hebben is een query die mij geeft:
alle personen die een koppeling met vaccinatie hebben waarbij de datum+werkingsduur verlopen is, dat is gelukt:
code:
1
2
3
| SELECT K.datum, V.naam, V.werkingsduur, P.*
FROM (Persoon AS P LEFT JOIN kpl_vaccinatie AS K ON K.pid=P.id) LEFT JOIN Vacinaties AS V ON V.vacinatiesId=K.vacinatiesId
WHERE ((Now()>DateValue(DateAdd("m",V.werkingsduur,K.datum))) And V.werkingsduur>'0') And V.verplicht=True; |
en
alle personen waarvan géén koppeling bestaat tussen hen en een verplichte vaccinatie.
M.a.w. Alle personen die aandacht nodig hebben
Deze laatste is een probleem. Ik dacht eerst aan een FULL outer join (die in access trouwens niet eens mogelijk lijkt) maar daar ben ik niet helemaal van overtuigd... moet ik het wellicht met subqueries doen of vraag ik hier iets dat nou eenmaal niet kan?
Wie helpt?
[ Voor 21% gewijzigd door Aesculapius op 11-12-2005 21:28 . Reden: Eerste query even als toelichting geplaatst ]
Zeg wat je doet en doe wat je zegt, dan wordt de hele wereld een stukje leuker