Stel ik heb de volgende database:
Nu wil ik van alle rekeningen de meest recente waarde ophalen. Dus eigenlijk wil ik van zowel rekening 1 en 2 het saldo weten op datum=102. Maar stel dat de laatste regel in het voorbeeld niet bestaat, dan wil ik het saldo van datum=100 weten van rekening 2. Hoe doe ik dat met MySQL? Ik kwam zelf op zoiets:
SELECT saldo FROM saldo_gegevens GROUP BY rek_nr ORDER BY rek_nr;
Voer ik deze (overigens illegale!) constructie uit met MySQL dan krijg je voor saldo in principe random resultaten: immers je geeft niet aan welke 'saldo' je wil hebben van de geaggregeerde saldo's. Maar MAX(saldo) kan ook niet, want ik wil niet het hoogste saldo, ik wil het meest recente saldo. Ik ben dus op zoek naar iets dat het volgende doet:
SELECT HET_MEEST_RECENTE(saldo) FROM saldo_gegevens GROUP BY rek_nr ORDER BY rek_nr;
Iemand een ideetje?
code:
1
2
3
4
5
6
7
8
| tabel saldo_gegevens rek. nr. saldo datum 1 100 100 1 200 101 1 150 102 2 512 100 2 400 102 |
Nu wil ik van alle rekeningen de meest recente waarde ophalen. Dus eigenlijk wil ik van zowel rekening 1 en 2 het saldo weten op datum=102. Maar stel dat de laatste regel in het voorbeeld niet bestaat, dan wil ik het saldo van datum=100 weten van rekening 2. Hoe doe ik dat met MySQL? Ik kwam zelf op zoiets:
SELECT saldo FROM saldo_gegevens GROUP BY rek_nr ORDER BY rek_nr;
Voer ik deze (overigens illegale!) constructie uit met MySQL dan krijg je voor saldo in principe random resultaten: immers je geeft niet aan welke 'saldo' je wil hebben van de geaggregeerde saldo's. Maar MAX(saldo) kan ook niet, want ik wil niet het hoogste saldo, ik wil het meest recente saldo. Ik ben dus op zoek naar iets dat het volgende doet:
SELECT HET_MEEST_RECENTE(saldo) FROM saldo_gegevens GROUP BY rek_nr ORDER BY rek_nr;
Iemand een ideetje?