05. maj 2004 - 09:36
Der er
10 kommentarer og 1 løsning
gruppere og sortere datoer fra DB
Hej. Jeg har en række datoer i min db fra mange forskellige måneder. Datatypen på felterne med datoer er varchar. Hvordan får jeg´lavet min forespørgsel så den udskriver dem i grupper for hver måned og højeste dato øverst i hver gruppe..??
Annonceindlæg fra Barco
Er jeres mødelokaler sikre nok?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
det fedeste ville være at lave formatet om til datetime. Så er der nemlig ingen ben i det. Men det kan også godt lade sig gøre alligevel. Hvilket "datoformat" kører du med?? yyyy-mm-dd, dd-mm-yyyy eller .....
jeg kan ikke bruge datetime da det er en oracle DB. formatet er : dd-mm-yyyy
Nu har jeg ikke brugt Oracle, men den har vel en dato type.... Men denne burde sortere i faldende orden.... "select * from xxxx order by right(dato,4) desc, mid(dato,3,2) desc, left(dato,2) desc" Hvis du vil have en måned: "select * from xxxx where right(dato,4)='2004' and mid(dato,3,2)='05' order by left(dato,2) desc" Jeg kan ikke huske om tekst begynder på index 0 eller 1, hvis det ikke virker så prøv med mid(dato,4,2).
jeg prøvede dit første eksempel men nu får jeg en fejl om ugyldigt kolonnenavn..??
har du ændret "dato" til dit kolonnenavn????
ja. kolonnenavnet med datoen er "dato"..
Det kan jeg ikke forstå. Oracle burde da understøtte left, right, mid. Men det kan da testes. Prøv at udskrive disse: "select left(dato,2) as MyLeft from xxxx"
har fundet frem til dette: order by substr(DATO,1,2) DESC, substr(DATO,4,2) DESC, substr(DATO,7,10) DESC den er næsten rigtig. det eneste den ikke sortere rigtig substr(DATO,4,2) altså månedsnummeret. Den skriver hele tiden det laveste nummer først..?
Nu fik jeg den til at virke: order by substr(DATO,4,2) DESC, substr(DATO,1,2) DESC, substr(DATO,7,10) DESC byttede bare lidt rund på dem. fennec læg lige et svar igen.
du skal have flyttet lidt mere rundt. Sorteringen skal være år, måned, dag. order by substr(DATO,7,10) DESC, substr(DATO,4,2) DESC, substr(DATO,1,2) DESC
Kurser inden for grundlæggende programmering