Avatar billede totalpc Seniormester
21. oktober 2008 - 11:13 Der er 8 kommentarer og
1 løsning

Hjælp til at hive antal ud pr måned

Hej

Jeg gemmer en dato i access som fx 03-10-2008.
Jeg vil gerne gruppere nogle data fra basen sorteret på måneden... ikke resten af datoen, kun måneden. Kan det gøres nemt ?

Eksempel:
Tabel1
dato----------art
18-06-2005----Ørred
11-06-2008----Ørred
12-05-2008----Torsk
16-05-2006----Skrubbe
19-01-2004----Ørred

Så vil jeg gerne kunne hive et antal ud for hver måned uanset årstal:
06 - 2
05 - 2
01 - 1
Avatar billede kalp Novice
21. oktober 2008 - 11:54 #1
select DatePart('m', dato), count(dato) from tabel1 group by DatePart('m', dato)
Avatar billede totalpc Seniormester
21. oktober 2008 - 12:01 #2
Hmm okay... Nu spørger jeg måske dumt.. Hvad skal jeg skrive ud af det der? Mangler der ikke en count(dato) as antal eller sådan noget? Eller er det m ?
Avatar billede kalp Novice
21. oktober 2008 - 12:34 #3
Det er op til dig selv om du vil navngive din count:)
men jo det kan du godt hvilket du også hurtigt ville se hvis du afprøvede det:)
Avatar billede totalpc Seniormester
21. oktober 2008 - 12:53 #4
strsql = "select DatePart('m', dato), count(dato) as antal from logbog where art='" & artsort & "'" &" group by DatePart('m', dato)"
Det virkede fint da jeg navngav counten. Ved ikke hvordan jeg kalder den hvis jeg ikke navngiver den?

Jeg skal så bruge samme måneder en gang til. (det er til at lave en graf.) Jeg skal dog ikke tælle den gang blot finde de måneder igen. Jeg har prøvet dette:

strsql = "select DatePart('m', dato) from logbog where art='" & artsort & "'" &" group by DatePart('m', dato)"

Hvordan udskriver jeg det jeg henter her?

<td><%=datepart%></td>
<td><%=m%></td>
eller hvad. Det kan jeg ikke lige få til at virke?
Avatar billede kalp Novice
21. oktober 2008 - 14:01 #5
ja eller bruge den samme som før.
Du vælger jo selv hvilke kolonner du vil udskrive.
Hvis du har fat i dit recordset, som vi lige kalder for "rs" i mit eksempel kan du få fat i kolonnerne uden og kende navn på dem med f.eks

rs.Fields.Item(1)
rs.Fields.Item(2)

muligvis er dit recordset's startindex 0.. dvs. første kolonne hedder måske 0 og ikke 1. det kan du forsøge dig med:)
Avatar billede totalpc Seniormester
21. oktober 2008 - 14:28 #6
undskyld hvis jeg er tungnem, men normalt siger man jo fx
select fornavn, efternavn from ...
Hvis jeg bruger rs så kan jeg bruge rs("fornavn") og rs("efternavn").
Jeg forstår ikke hvad det er jeg skal bruge i det her tilfælde:
strsql = "select DatePart('m', dato) from logbog where art='" & artsort & "'" &" group by DatePart('m', dato)"
Avatar billede kalp Novice
21. oktober 2008 - 15:26 #7
så prøv og skrive

rs(1), rs(2)

jeg er rimelig sikker på man kan angive det med index:)

og du spurgte til hvordan du kan udskrive en kolonne uden og angive et alis til det;)

men når du alligevel selv ved det hvorfor skriver du så ikke din sql som:
strsql = "select DatePart('m', dato) as dato from logbog where art='" & artsort & "'" &" group by DatePart('m', dato)"

rs("dato")
Avatar billede totalpc Seniormester
21. oktober 2008 - 16:05 #8
Hold k.. mand.. Undskyld.. Kan ikke se skoven for bare træer.
Tak for hjælpen selv du er en hård læremester ;)
Smid et svar
Avatar billede kalp Novice
21. oktober 2008 - 16:10 #9
=)

selv tak:)
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
Kurser inden for grundlæggende programmering

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