Momenteel ben ik bezig met een CMS'je dat statistieken moet genereren uit een reeds bestaande tabel met data.
De tabel ziet er zo uit:
Het datamodel bestaat dus al en daar kan ik niks aan veranderen. Het houdt in ieder geval bij hoeveel bezoekers ('B') of inschrijvingen ('I') er op een bepaalde training zijn geweest, in een bepaalde week (== weeknummer), een bepaalde maand of een bepaald jaar.
Nu moet ik in dat CMS een overzichtje geven van de bezoekaantallen in een bepaalde periode. Nu is het niet zo moeilijk als de periode hetzelfde jaar bestrijkt, de query wordt dan bijvoorbeeld zoiets: (als er gezocht wordt op een periode tussen 2 maanden (in dit geval februari en april)):
Het wordt alleen vervelend als een periode meerdere jaren gaat beslaan. Ik loop me er echt een beetje blind op te staren. Iemand die een helder idee heeft?
De tabel ziet er zo uit:
code:
1
2
3
4
5
6
7
| id int(11)
training int(11)
week tinyint(4)
maand tinyint(4)
jaar int(11)
soort enum('B','I')
aantal int(11) |
Het datamodel bestaat dus al en daar kan ik niks aan veranderen. Het houdt in ieder geval bij hoeveel bezoekers ('B') of inschrijvingen ('I') er op een bepaalde training zijn geweest, in een bepaalde week (== weeknummer), een bepaalde maand of een bepaald jaar.
Nu moet ik in dat CMS een overzichtje geven van de bezoekaantallen in een bepaalde periode. Nu is het niet zo moeilijk als de periode hetzelfde jaar bestrijkt, de query wordt dan bijvoorbeeld zoiets: (als er gezocht wordt op een periode tussen 2 maanden (in dit geval februari en april)):
code:
1
2
3
4
5
6
7
8
9
10
| SELECT t.naam,
sum(s.aantal) AS aantal
FROM trainingen t,
trainingen_statistieken s
WHERE s.maand >= '2' AND
s.maand <= '4' AND
s.jaar = '2002' AND
s.soort = 'B' AND
s.training = t.id
ORDER BY aantal DESC |
Het wordt alleen vervelend als een periode meerdere jaren gaat beslaan. Ik loop me er echt een beetje blind op te staren. Iemand die een helder idee heeft?