Na een langdurige zoektocht heb ik erg veel topics over mijn onderwerp gevonden, maar .. geen oplossing. Conclussie trekkende uit het topic [rml][ SQL] Group by + MIN werkt niet ?[/rml] is dat het niet kan wat ik wil .. maar .. ik kan het me eigenlijk niet voorstellen, dus toch nog maar ff het probleem met jullie delen:
Ik heb een tabel met daarin facturen van klanten. Deze facturen zijn gekoppeld aan een advertentie, er kunnen meerdere facturen bij een advertentie horen.
De tabel ziet er ongeveer zo uit:
Nou wil ik alle records selecteren waarbij indien hetzelfde advertentieID meerdere keren voorkomt het record wordt gepakt met de nieuwste datum.
Ik wil dus terug:
Dit dacht ik eenvoudig voor elkaar te krijgen .. maar na heel wat pogingen met DISTINCT, GROUP BY, MAX, HAVING .. enz .. geef ik het nu na een halve dag prutsen op.
De laatste poging is:
Maar hierbij koppelt hij gegegens van verschillende records aan elkaar. Waarschijnlijk is de query ook fout, aangezien er niets gebeurd met factuurID. Maar als ik deze in de GROUP BY clausule opneem krijg ik weer gewoon herhaalde rijen van advertentieID te zien en niet alleen unieke.
Om een lang verhaal niet nog langer te maken .. ik kom er niet meer uit .. en loop helemaal vast .. en zie door alle aggregaties het bos niet meer.
Toevoeging: Het gaat hier om MySQL (Versie 4.0.25)
Ik heb een tabel met daarin facturen van klanten. Deze facturen zijn gekoppeld aan een advertentie, er kunnen meerdere facturen bij een advertentie horen.
De tabel ziet er ongeveer zo uit:
code:
1
2
3
4
5
6
| factuurID advertentieID datum 1 100 01-01-05 2 106 11-12-04 3 120 03-06-05 4 100 01-06-05 5 100 14-10-05 |
Nou wil ik alle records selecteren waarbij indien hetzelfde advertentieID meerdere keren voorkomt het record wordt gepakt met de nieuwste datum.
Ik wil dus terug:
code:
1
2
3
4
| factuurID advertentieID datum 2 106 11-12-04 3 120 03-06-05 5 100 14-10-05 |
Dit dacht ik eenvoudig voor elkaar te krijgen .. maar na heel wat pogingen met DISTINCT, GROUP BY, MAX, HAVING .. enz .. geef ik het nu na een halve dag prutsen op.
De laatste poging is:
code:
1
2
3
| SELECT factuurID, advertentieID, MAX(datum) FROM tabel GROUP BY advertentieID |
Maar hierbij koppelt hij gegegens van verschillende records aan elkaar. Waarschijnlijk is de query ook fout, aangezien er niets gebeurd met factuurID. Maar als ik deze in de GROUP BY clausule opneem krijg ik weer gewoon herhaalde rijen van advertentieID te zien en niet alleen unieke.
Om een lang verhaal niet nog langer te maken .. ik kom er niet meer uit .. en loop helemaal vast .. en zie door alle aggregaties het bos niet meer.
Toevoeging: Het gaat hier om MySQL (Versie 4.0.25)
[ Voor 4% gewijzigd door Wolf3D op 03-11-2005 13:03 ]