Ik heb een Access database met een aantal tabellen die gekoppeld zijn via het veld OnderwerpNr. Voor alle records (OnderwerpNr is de primaire sleutel) wil ik bepalen wie de eindverantwoordelijke is. Dit is degene in het veld Verantwoordelijke, waarvan het veld Termijn de hoogste datum heeft. (er zijn meerdere verantwoordelijken + termijnen per OnderwerpNr) Tenzij het veld Termijn leeg is, dan is de eindverantwoordelijke de Bron.
Ik ben al de hele middag bezig en ben er uiteindelijk bijna, op een ding na.
Probleem:
De bedoeling is dat ik in de volgende query:

nog een paar aanpassingen maak, zodat ik uiteindelijk dit overhoud:

Maar: als de Bron en de Verantwoordelijke die bij een OnderwerpNr horen verschillend zijn, blijkt het OnderwerpNr tweemaal weergegeven te worden in de query. Daardoor krijg ik momenteel dit:

Hoe kan ik er voor zorgen dat hij niet kijkt of Bron en Verantwoordelijke verschillend zijn, maar dat hij gewoon kijkt welke de hoogste datum in Termijn heeft staan, en op basis daarvan de andere weglaat?
Ik ben al de hele middag bezig en ben er uiteindelijk bijna, op een ding na.
Probleem:
De bedoeling is dat ik in de volgende query:

code:
1
2
3
4
| SELECT Onderwerpen.OnderwerpNr, Stukken.Bron, Routing.Verantwoordelijke, Routing.Termijn, IIf(IsNull([Verantwoordelijke]),[Bron],[Verantwoordelijke]) AS Uiteindelijke_Verantwoordelijke FROM (Onderwerpen INNER JOIN Stukken ON Onderwerpen.OnderwerpNr = Stukken.OnderwerpNr) INNER JOIN Routing ON Stukken.StukID = Routing.StukID GROUP BY Onderwerpen.OnderwerpNr, Stukken.Bron, Routing.Verantwoordelijke, Routing.Termijn, IIf(IsNull([Verantwoordelijke]),[Bron],[Verantwoordelijke]), Onderwerpen.Status HAVING (((Onderwerpen.Status)<>3)); |
nog een paar aanpassingen maak, zodat ik uiteindelijk dit overhoud:

Maar: als de Bron en de Verantwoordelijke die bij een OnderwerpNr horen verschillend zijn, blijkt het OnderwerpNr tweemaal weergegeven te worden in de query. Daardoor krijg ik momenteel dit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| SELECT Onderwerpen.OnderwerpNr, Max(Routing.Termijn) AS MaxVanTermijn, IIf(IsNull([Verantwoordelijke]),[Bron],[Verantwoordelijke]) AS Uiteindelijke_Verantwoordelijke FROM (Onderwerpen INNER JOIN Stukken ON Onderwerpen.OnderwerpNr = Stukken.OnderwerpNr) INNER JOIN Routing ON Stukken.StukID = Routing.StukID GROUP BY Onderwerpen.OnderwerpNr, IIf(IsNull([Verantwoordelijke]),[Bron],[Verantwoordelijke]), Onderwerpen.Status HAVING (((Onderwerpen.Status)<>3)); |
Hoe kan ik er voor zorgen dat hij niet kijkt of Bron en Verantwoordelijke verschillend zijn, maar dat hij gewoon kijkt welke de hoogste datum in Termijn heeft staan, en op basis daarvan de andere weglaat?