sql sorteren
datum |naam
2008-04-15 |knipper
2009-03-15 |jef
2008-04-19 |jan
2008-05_30 |rik
nu als in de url niet's is opgegeven van jaar dan geeft hij dit
2008
2009
als in de url de get jaar is 2008
04
05
als er in de get nu jaar is 2008 en maand is 04
15
19
dit is wat ik wil maken. maar hoe zorg ik er voor dat hij zo sorteert ( als er 2 keer 2009 staat (2009-04-06 en 2009-05-11) dat hij dan maar 1 keer 2009 weergeeft) de datum kan ik splitsen met preg replace.
Sorry als mijn vraag zo wazig is maar ik zou hem niet ander's kunnen stellen.
Toevoeging op 04/01/2012 14:19:40:
alvast bedankt
"Order by" en dan eerst t jaar, dan de maand en dan de dag? Normaal niet zo moeilijk hoor
en hoe moet ik het doen als hij rechtstreeks de voledige datum uit de database haalt. dan kan ik het toch niet doen in de sql zelf ( het moet erst nog door een preg replace )
ok hij laad het jaar en hoe kan ik dat doen met maand en met dag ( er vanuitgaande dat het jaar uit een get komt ( dus niet alle maanden weergeven )
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
SELECT
MONTH(datum) AS maand
FROM
tabel
WHERE YEAR(datum) = 2012
GROUP BY maand
ORDER BY maand;
MONTH(datum) AS maand
FROM
tabel
WHERE YEAR(datum) = 2012
GROUP BY maand
ORDER BY maand;
(Dit is de query, omzetten naar php mag je zelf doen)
bedankt
Nou, YEAR is voor het jaar. Zou DAY en MONTH dan niet voor de andere 2 zijn?
Wilt gij voortaan correcte SQL posten, bij voorbaat dank.
YEAR()/MONTH()/DAY() zijn geen aggregate functions, de GROUP BY hoort dus niet thuis in jouw SQL-statement.
En kom niet aankakken met uniek extract year, want daar hebben we DISTINCT dan voor.