Ik ben met een select query bezig om gegevens uit mijn database te halen alleen ik krijg maar niet de juiste informatie eruit. Ik heb een database met een date veld erin en ik heb een kolom cijfers en daarin staat dan 0, 1, 2 maar het er kan ook 100000 staan enz. (zie onderstaande afbeelding van een voorbeeld van de gegevens uit mijn database).

Nu wil ik twee queries maken een die alle gegevens eruit haalt van alle jaren waarvan de cijfers bestaat uit 1 of 2 getallen, die krijg ik werkend (al weet ik niet 100% zeker of het goed is). En ik wil een query die alle gegevens eruit haal van een specifiek jaar waarvan de cijfers bestaat uit 1 of 2 getallen, en die krijg ik niet werken.
Query die alle gegevens eruit haal van elk jaar (deze laat de juiste aantallen zien)
SELECT cijfers,
CHAR_LENGTH(cijfers) As cijferscount,
count(*) as aantal
FROM tabelnaam
Group by cijfers
HAVING cijferscount = 1 OR cijferscount = 2
En uiteindelijk krijg ik dan de resultaten a la de toegevoegde afbeelding hierboven (b.v. 6x komt de 0 voor, 3x in 2008 en 3x in 2009)
En dit is de query die ik er dan van gemaakt heb om de resultaten van een specifiek jaar op te halen:
SELECT YEAR(datum) As jaar,
cijfers,
CHAR_LENGTH(cijfers) As cijferscount,
count(*) as aantal
FROM tabelnaam
Group by cijfers
HAVING cijferscount = 1 OR cijferscount = 2 AND jaar = "2008"
Alleen wat er nu fout gaat is dat hij aangeeft van in 2008 komt het nummer 0, 6x voor terwijl dat maar 3x is in 2008 (en ook 3x in 2009, dus totaal is het wel 6 maar ik wil alleen de aantallen van 2008 weten).
Wat doe ik fout?