Avatar billede bluwduch Nybegynder
22. april 2003 - 10:52 Der er 12 kommentarer og
1 løsning

Returnere beregninger?

Hejsa

Jeg skal hente 2 numre fra en tabel, og ikke nødvendigvis i samme query. De første nummer er antallet af dage mellem tidligste og seneste dato fundet i en kolonne - Det andet er differencen mellem det største og det mindste tal i en anden kolonne.

Kan dette beregned af databasen, eller skal jeg trække værdierne ud individuelt og beregne på dem? - Hvordan gøres det bedst?

Mvh
Daniel-San
Avatar billede mugs Novice
22. april 2003 - 11:09 #1
Differencen mellem 2 datoer, kan du finde ved at bruge funktionerne DateDiff og DMin/DMax enten i en forespørgsel eller ved en VBA-procedüre.

Jeg har ikke Access på denne maskine men mener syntaksen for VBa er nogenlunde sådan:

a = DMin(Feltnavn,Tabelnavn)
b = DMax(Feltnavn,Tabelnavn)
DateDiff("d",a,b)
Avatar billede meku Nybegynder
22. april 2003 - 11:10 #2
Hej

Hvis jeg forstår dig ret, vil du gerne finde de største og mindste værdier og trække den fra hinanden. Det kan du gøre således:

SELECT DateDiff("d",Min([dato]),Max([dato])) AS ForskelMellemDatoer, Max([tal])-Min([tal]) AS ForskelMellemTal
FROM Tabel;
Avatar billede mugs Novice
22. april 2003 - 11:13 #3
Jeg har lige checket syntaksen på DMin / DMax:

a = DMin("[Feltnavn]",Tabelnavn")
Avatar billede mugs Novice
22. april 2003 - 11:14 #4
Og så kan jeg ikke engang skrive det rigtig:

a = DMin("[Feltnavn]",Tabelnavn)
Avatar billede bluwduch Nybegynder
22. april 2003 - 11:30 #5
meku -->

Jeg kan sagtens få dine ideer til at virke uden DateDiff, men får fejl hver gang den er på. Min streng ser således ud:

strSQL = "SELECT DateDiff("D", Min(date), Max("date")) AS days FROM Progress"

Fejlen er:

Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/kur/index.asp, line 15, column 27
strSQL = "SELECT DateDiff("D", Min(date), Max
("date")) AS days FROM Progress"
--------------------------^


Måske er det ganske åbenlyst, men jeg kan ikke umiddelbart finde den?
Avatar billede meku Nybegynder
22. april 2003 - 12:16 #6
Du skal sætte dit kolonnenavn i [] dvs. 
SELECT DateDiff("D", Min([date]), Max([date])) AS days FROM Progress
Avatar billede bluwduch Nybegynder
22. april 2003 - 12:17 #7
Men Min og Max henter fint værdierne uden [] om kolonnenavnet hvis jeg ikke bruger DateDiff i kaldet!!!
Avatar billede bluwduch Nybegynder
22. april 2003 - 12:21 #8
Jep! - Fejlen er den samme selvom de er der!
Avatar billede mugs Novice
22. april 2003 - 12:42 #9
Prøv at ændre "D" i din Datediff til "d"
Avatar billede bluwduch Nybegynder
22. april 2003 - 12:44 #10
Det ændrer ikke noget - Samme fejl!
Avatar billede meku Nybegynder
22. april 2003 - 12:51 #11
Prøv evt. at hente sætningen direkte ind i forespørgsler i Access og se om det giver en fejl der.
Evt. prøv at ændre , til ;
Det virker fint hos mig, så ??? Hvilken version køre du?
Avatar billede bluwduch Nybegynder
22. april 2003 - 12:55 #12
Hmm! - Det virker også fra min Access 2000 hvis man spørger derinde, men stadig ikke fra ASP'en.

Så hvad dælen kan der være galt?
Avatar billede bluwduch Nybegynder
22. april 2003 - 14:04 #13
Det er D'et der roder - Istedet for at være i " skal den være i ' som her:

"SELECT datediff('D', Min([date]), Max([date])) AS days FROM Progress"

MEN det virker nu, så mange tak for hjælpen :-D
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