Ben bezig met het bouwen van een rapport voor een applicatie die ik maak, ik moet hiervoor bekijken welke producten een bepaalde status verandering hebben ondergaan. Hiervoor moet ik bekijken welke producten een bepaalde laatste status hebben en de vorige status. De laatste status haal ik alsvolgt uit de database:
in deze query wil nog graag een selectie toevoegen waarbij ik de voorlaatste datum van een productid + klantid het resultaatid wil op halen, waarbij het resultaat id = 1 moet zijn.
ter illustratie:
SQL:
1
2
3
4
5
6
7
8
9
10
| SELECT * FROM Klantbezoek WHERE ((ResultaatID = 1 OR ResultaatID = 4 OR ResultaatID = 7 OR ResultaatID = 8)) AND (Datum = (SELECT MAX(datum) FROM klantbezoek kb1 WHERE kb1.productid = klantbezoek.productid AND kb1.klantid = klantbezoek.klantid)) ORDER BY KlantID |
code:
1
2
3
4
5
6
7
8
| id prod.id klant.id datum resultid 15 11 12 14-6-2002 1 14 10 12 13-6-2002 1 11 6 12 14-6-2002 8 17 9 13 21-6-2002 8 694 31 14 12-6-2002 1 686 15 14 12-6-2002 1 692 67 14 12-6-2002 1 |
in deze query wil nog graag een selectie toevoegen waarbij ik de voorlaatste datum van een productid + klantid het resultaatid wil op halen, waarbij het resultaat id = 1 moet zijn.
ter illustratie:
code:
1
2
3
| datum 1 datum 2 resultid 1 4 <- deze moet geselecteerd worden resultid 3 4 <- deze niet |