SQL count meerdere maanden
Ik ben met een systeem bezig en daar zit een onderdeel statistieken in, echter loop ik met de query wat vast en te stoeien.
In een database staat het volgende:
id -> 1
dag -> 01
maand -> 01
jaar -> 2011
begintijd -> 07:00
eindtijd -> 08:00
totaletijd -> 01:00
Nu wil ik van de verschillende maanden, getallen genereren hoeveel dagen er gewerkt zijn en later ook optellen hoeveel uur er per maand gewerkt is. Deze getallen komen uiteindelijk in een staafdiagram (google api). Nu is mijn vraag wat is de beste, snelste en makkelijkste manier om dit te doen.
Want ik heb nu het volgende, maar dat lijkt mij niet echt de snelste oplossing:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$sql = "SELECT COUNT(*) AS dagen_juli FROM tijdregistratie WHERE eigenaar='".$gebruikersnaam."' AND maand='07' AND jaar='2011'";
$res = mysql_query($sql);
$reg = mysql_fetch_array($res);
$wj = $reg['dagen_juli'];
?>
$sql = "SELECT COUNT(*) AS dagen_juli FROM tijdregistratie WHERE eigenaar='".$gebruikersnaam."' AND maand='07' AND jaar='2011'";
$res = mysql_query($sql);
$reg = mysql_fetch_array($res);
$wj = $reg['dagen_juli'];
?>
(even los van de beveiliging! want ik weet dat deze nu niet goed zit ;) is nu even niet belangrijk)
Nu zou ik zeg maar 12x zo een query moeten maken voordat ik alle waardes van dit jaar zou hebben. Volgens mij kan dit beter met Group By maar ik kom er maar niet uit hoe ik de waardes van de verschillende maanden dan bij elkaar krijg. Dus:
maand 1: 5 werkdagen
maand 2: 1 werkdagen
maand 3: 2 werkdagen
maand 4: 9 werkdagen
maand 5: 5 werkdagen
Mogelijk kan iemand mij even een duwtje de goede richting in helpen. Alvast bedankt!
Dit is vanaf mn mobiel getypt, vandaar het ontbreken van de opmaak. Echter heb je met bovenstaande query nog wel het probleem dat wanneer 2 of meer records op dezelfde dag betrekking hebben dat dan het aantal dagen niet klopt. Mocht het niet lukken om dit op te lossen dan zal ik er op een later tijdstip naar kijken.
Gewijzigd op 24/08/2011 23:54:55 door Arjan -
Jup na wat stoei werk is het allemaal gelukt. Super bedankt!