Nu har den här selecten fungerat helt OK, men... nu är det snart 2007 och då kommer den helt klart inte fungera.
SELECT placering, count( * ) AS antal, year( l.datum )
FROM resultat s
JOIN lopp l ON l.loppID = s.loppID
WHERE typID <5
AND year( l.datum ) =2006 AND problemID <> 9 GROUP BY placering
I och med att databasen innehåller en del uppgifter från 2004 och framåt så har jag kunnat testa med att skriva >=2004 men det blir inte alls som jag tänkt hur jag än försökt med sådant som att gruppera datum osv.
Målet är att få reda på hur många 1:or upp t.o.m 6:orna det finns varje år.
Vad är det som måste till?
Den enkla lösningen är förstås att skriva year( l.datum ) = 2007 istället. Vill du ha alla lopp för det år det är just nu borde det funka med year( l.datum ) = year(now()). Men av din formulering tror jag kanske att det är nåt sånt här du är ute efter:
SELECT placering, count( * ) AS antal, year( l.datum ) AS theYear
FROM resultat s JOIN lopp l ON l.loppID = s.loppID
WHERE typID < 5 AND problemID <> 9
GROUP BY placering, theYear
Det ser ut som det kommer fungera jättebra. Meningen är att det ska skrivas ut en tabell där man kan se för varje år antalet placeringar så nu återstår att förstå hur php ska skriva ut en 0:a för varje kolumn första januari :-)
Tack så jättemycket!
Det vill sig inte riktigt. När jag försöker få in att det bara ska hämtas ut data från 2006 och framåt så ignoreras det utan felmeddelande och jag får svar från 2003 och framåt ändå.
Så vad är det för något som måste till då utan att count slutar fungera... vilket jag lyckats med...
SELECT placering, count( * ) AS antal, year( l.datum ) AS theYear
FROM resultat s JOIN lopp l ON l.loppID = s.loppID
WHERE typID < 5 AND problemID <> 9 AND year(l.datum) >= 2006
GROUP BY placering, theYear