12. april 2003 - 08:58Der er
14 kommentarer og 2 løsninger
group by Måned
Jeg har et datetime-felt i en MySQL database (xxxx-xx-xx xx:xx:xx). Jeg vil gerne kunne sige group by måned, men hvordan får jeg hevet måned ud af min datetime, så jeg kan gruppere?
select * from ditabel where ditdatofelt>'01-02-03' and ditdatofelt<'01-03-03' Er en metode, jeg kigger lige i dokumentationen og ser om der er en indbygget funktion
jeg kan sgu ikke rigtigt komme igang synes jeg ikke.
Hvis der i min tabel findes en dato beliggende i januar 2003 (ex. 2003-01-10 00:00:00), så skal min side udskrive et link 'Januar 2003'. Det skal den også gøre for alle andre måneder der findes i tabellen, men naturligvis kun en gang for hver måned. Er der nogen der kan tænke en smart måde at komme igang på? Jeg har tænkt noget med for-løkker eller sådan...
det ser ud til, at twm's forslag er det der er simpelst. Jeg har lavet en sætning der ser således ud: strSQL1 = "Select * from galleri group by MONTH(dato), YEAR(dato)"
og det ser ud til at virke, så hvorfor alt det der med 'select as'?
"select as" bruger du når du vil benytte et beregnet felt i dit program.
med "Select * from galleri group by MONTH(dato), YEAR(dato)" får du sorteret først på måned og dernæst år (januar 2001, januar 2002, februar 2001 osv).
desuden kan du kun benytte "select *" hvis du ikke har andre felter i galleri tabellen end dato. ved GROUP BY skal du alle felter i SELECT enten stå i GROUP BY eller være aggregerede felter (MIN, MAX, COUNT, SUM)
jeg brugte as i eksemplet så du fik år og måned ud som enkelt værdier. AS navngiver bare det der står foran as, eks: select id, "noget tekst" as etnavn from tabel
så vil der i alle rækker være et felt med navn etnavn indeholdende "Noget Tekst" Husk altid på at hvis du bruger de indbyggede funktioner på database serveren, vil det næste altid give bedre performance, end hvis du gør det lokalt i koden (specielt ASP og PHP). SQL serveren er toptunnet til at udføre netop de funktioner.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.