Avatar billede stof Nybegynder
23. januar 2012 - 10:50 Der er 10 kommentarer og
1 løsning

Sorter og grupper efter dato

Hej.

Nu har jeg siddet og bøvlet med det her dato-problem i meget lang tid.

Jeg har en tabel (TBLlog) med et felt(FingerPrintTime) med fuld dato længde (Både dato og tidspunkt - eks. 25-11-2011 11:57:58

Jeg har så lavet følgende som skal optælle hvor mange tilfælde der er af en given handling:

SELECT format(TBLlog.[FingerPrintTime],"dd-mm-yyyy") AS Dato, Count(IIf([Handling]="Opdater",0)) AS AntalOpdater,
Count(IIf([Handling]="Ejerskab",0)) AS AntalEjerskab,
Count(IIf([Handling]="Afslut",0)) AS AntalAfslut
FROM TBLlog
GROUP BY format(TBLlog.[FingerPrintTime],"dd-mm-yyyy")
ORDER BY format(TBLlog.[FingerPrintTime],"dd-mm-yyyy")


Jeg samler altså "handlinger" med samme dato og optæller hhv. handling=Opdater, handling=Ejerskab, handling=Afslut

Problemet er at datoen bliver sorteret forkert og jeg kan ikke lave et filter på forespørgslen senere.

Ovenstående SQL giver dette output:

Dato    AntalOpdater    AntalEjerskab    AntalAfslut
02-12-2011    1    2    1
05-01-2012    1    1    0
06-01-2012    7    3    0
06-12-2011    0    1    5
17-01-2012    0    0    1
18-01-2012    0    1    1
20-12-2011    2    2    0
23-01-2012    1    0    1
25-11-2011    2    0    0
29-11-2011    1    3    1


Der er altså sorteret efter første dag i måneden og ikke efter dato.

Alt hjælp værdsættes meget!
Avatar billede hugopedersen Nybegynder
23. januar 2012 - 10:58 #1
Den sorterer præcis som du beder den om - Format returnerer en streng mig bekendt og en streng sorteres som vist.
Prøv at fjerne format fra din ORDER BY og se hvad der så sker.
Avatar billede stof Nybegynder
23. januar 2012 - 11:04 #2
Ja. Det er rigtigt.

Hvis jeg fjerner det er det samme resultat.
Ved du hvordan jeg angiver det som dato? Har sat #'er ind men det hjælper ikke.
Avatar billede hugopedersen Nybegynder
23. januar 2012 - 11:39 #3
Hvis du har et rigtigt datofelt og så laver ORDER BY på den, så skal det virke rigtigt - det gør det i hvert fald i mine applikationer.

Har du en kopi af tabellen med lidt data i, så kan du sende den til mig, så skal jeg gerne se om det ikke kan laves.

oz8hp  snabeltud  hotmail  punktum  com
Avatar billede stof Nybegynder
23. januar 2012 - 11:53 #4
Tusind tak. Jeg har sendt dig en mail!
Avatar billede hugopedersen Nybegynder
23. januar 2012 - 12:02 #5
SELECT CDate(Format([TBLlog].[FingerPrintTime],"dd-mm-yyyy")) AS Dato, Count(IIf([Handling]="Opdater",0)) AS AntalOpdater, Count(IIf([Handling]="Ejerskab",0)) AS AntalEjerskab, Count(IIf([Handling]="Afslut",0)) AS AntalAfslut
FROM TBLlog
GROUP BY CDate(Format([TBLlog].[FingerPrintTime],"dd-mm-yyyy"));
Avatar billede stof Nybegynder
23. januar 2012 - 12:26 #6
Fantastisk!!

Tak for hjælpen!
Avatar billede hugopedersen Nybegynder
23. januar 2012 - 12:28 #7
Jamen velbekom da og tak for point

Der findes en hel del funtioner der hedder noget med C som kan bruges til at konvertere ting med (CStr, CDate, CInt o.s.v.)
Avatar billede stof Nybegynder
23. januar 2012 - 12:43 #8
Ja. Jeg havde også kigget på denne funktion - men ikke i sammenkobling med format egenskaben. Tænkte ikke helt så langt.

Det er nu fantastisk når noget lykkedes! Tak, endnu engang!
Avatar billede Abemand123 Nybegynder
24. januar 2012 - 11:54 #9
Bruger udelukket pga SPAM

Dette indlæg er blevet modereret af en CoAdmin

Avatar billede DjJohn Nybegynder
24. januar 2012 - 12:40 #10
Bruger udelukket pga SPAM
Avatar billede kjeldsted Novice
24. januar 2012 - 13:07 #11
Abemand og DjJohn.

Kunne i ikke finde et andet sted til al jeres spam. Det er seriøst irriterende at de indlæg dukker op overalt. Og desuden også imod regelerne.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester