Hoi,

ik heb een tabel met sales informatie waaruit ik met een query enkele gegevens zou moeten kunnen opvragen. Ik weet echter niet hoe ik hieraan moet beginnen.

Tabel:
* item (long)
* location (string)
* sales (double)
* period (date)

Hier zitten dus meerdere historische verkoopswaarden in per item/locatie combinatie. Nu zou ik graag als resultaat van mijn query alle velden krijgen, maar enkel de laatste 6 perioden van elke item/locatie combinatie.

Een periode is altijd bijvoorbeeld 1/09/2006 of 1/08/2006, aangezien het altijd over een periode van 1 maand gaat.

Kan iemand mij hierbij helpen ? Met een limit lukt het me niet; dan krijg ik in totaal slechts 6 records terug en dat is niet de bedoeling.


Alvast bedankt !
SELECT * FROM jouwtabel WHERE PERIOD > 01/03/2006

Het ziet er trouwens niet naar uit dat period van het type DATE is
Klaasjan Boven schreef op 31.10.2006 15:23
SELECT * FROM jouwtabel WHERE PERIOD > 01/03/2006

Het ziet er trouwens niet naar uit dat period van het type DATE is
Dit gaat dus gegarandeerd fout, maak hier z.s.m. een DATE van, in het formaat YYYY-MM-DD. Dat is het formaat om de boel óp te slaan. Hoe de gebruiker een datum invoert of hoe je het via een RSS-feed krijgt aangelevert, staat daar helemaal los van.
@ Klaasjan Boven

Wel daar had ik ook aan gedacht, maar dit is helaas niet mogelijk. Er zijn immers item/locatie combinaties die niet voor elke maand sales informatie hebben. In dat geval ontbreekt dus het record van die maand, het is niet zo dat 'sales' dan op 0 staat.

Stel dus dat ik jouw manier gebruik, dan zou ik in dat geval geen 6 records per item/locatie combinatie terugkrijgen.

@ Frank

Het is wel degelijk een date hoor, het zit idd in de database zoals jij beschrijft. Maar dat verandert niks aan mijn probleem. :-(

Reageren