Avatar billede skovtrold Nybegynder
28. januar 2003 - 08:33 Der er 14 kommentarer og
1 løsning

Select kun dato fra et Date/Time felt

Jeg har et dato-felt i min database med formatet Date/Time.
Jeg vil gerne lave en select ala denne:
Select DISTINCT MinDato from MinTabel

Sådan at jeg får hentet alle datoer ud, men kun een gang. Problemet er at jeg ikke kan bruge distinct på mit Date/Time-felt, for selvom nogle datoer er ens, opfattes de forskellige pga klokkeslettet. Der er jo ikke 2 der er oprettet på nøjagtigt samme sekund.
Så kan man ikke selecte distinct på et Date/Time felt men kun på selve datoen?
Avatar billede sjap Praktikant
28. januar 2003 - 09:28 #1
Prøv med

SELECT DISTINCT MinDato FROM MinTabel;
Avatar billede sjap Praktikant
28. januar 2003 - 09:30 #2
Det gik vist lige hurtigt nok. Prøv i stedet med:

SELECT DISTINCT Int([MinDato]) AS Dato FROM MinTabel;
Avatar billede skovtrold Nybegynder
28. januar 2003 - 10:02 #3
Det virker :-)
Tak for hjælpen!
Avatar billede skovtrold Nybegynder
28. januar 2003 - 10:10 #4
Hvad er det lige nøjagtig der sker i den select du har lavet?
Hvad gør Int([ ]) ?
Avatar billede sjap Praktikant
28. januar 2003 - 10:15 #5
Datotidsformatet i Access er opbygget så datodelen er heltal, mens tidsdelen så angives med decimaler (f.eks. er 0,5 kl. 12.00). Int fjerner bare decimalerne, så der altså kun er datodelen af tallene tilbage.
Avatar billede skovtrold Nybegynder
28. januar 2003 - 10:22 #6
Kan du svare på hvorfor jeg ikke kan bruge følgende:

Sql2 = "Select count(*) as Antal from MinTabel where Int([MinDato]) = RS("Dato")

RS("Dato") er den dato jeg netop har hentet vha din select.

Denne select skal køre i en løkke og skal hente antal af emner ud for hver af de datoer jeg henter i den forrige select.


Jeg vil gerne smide flere point i?
Avatar billede sjap Praktikant
28. januar 2003 - 10:34 #7
Lidt point kan man da altid bruge. Jeg kan ikke gennemskue præcist hvor det går galt Det behøver dog ikke være så kompliceret, så men prøv i stedet med:

SELECT DISTINCT Int([MinDato]) AS Dato, Count(MinDato) AS Antal FROM MinTabel GROUP BY Int([MinDato]);
Avatar billede skovtrold Nybegynder
28. januar 2003 - 10:53 #8
Det virker desværre ikke - den tæller ikke...

Jeg opretter et nyt spørgsmål med point når vi er færdige, ok?
Avatar billede sjap Praktikant
28. januar 2003 - 11:01 #9
Den tæller faktisk fint, når jeg prøver den. Jeg kan ikke lige gennemskue, hvor det går galt hos dig. Og så det dumme spørgsmål: Er du sikker på du har skrevet SQL'en korrekt?
Avatar billede skovtrold Nybegynder
28. januar 2003 - 11:04 #10
Det jeg vil, er at vise de enkelte dage hvor der er oprettet emner, og for dag, kan der være oprettet flere emner, derfor skal antallet af emner pr. dag tælles sammen og vises for den pågældende dag.

Min sql:

Sql = "SELECT DISTINCT Int([MinDato]) AS Dato, Count(MinDato) AS Antal FROM MinTabel GROUP BY Int([MinDato])"
Avatar billede sjap Praktikant
28. januar 2003 - 13:17 #11
Det som den viste SQL gør er, at den blot tæller hvor mange poster, der findes i tabellen for hver dato. Det skulle vel egentligt være godt nok.

Det betyder sikkert ikke noget, men du mangler faktisk et ; til sidst i sætningen.
Avatar billede skovtrold Nybegynder
28. januar 2003 - 13:40 #12
Nej, som du selv siger, så er der ingen forskel om jeg har ; med eller ej...
Har du et andet forslag?
Avatar billede sjap Praktikant
28. januar 2003 - 13:52 #13
Kan du fortælle mig præcist, hvad der går galt? Kommer datoerne op, men uden summer, er summerne forkerte eller kommer der slet ikke nogen datoer op?
Avatar billede skovtrold Nybegynder
28. januar 2003 - 13:58 #14
Du må altså virkelig undskylde.
Det virker nu - og fejlen var min. Jeg havde sat et forkert variabel navn...piiinligt
Jeg opretter et nyt spørgsmål så du kan få¨nogle point for din hjælp (og tålmodighed)
Avatar billede skovtrold Nybegynder
28. januar 2003 - 14:02 #15
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