Avatar billede xyz74 Nybegynder
30. oktober 2002 - 11:23 Der er 32 kommentarer og
1 løsning

HJÆLPPPP

jeg har denne her sql sætning :
 
  SQL = "SELECT Medarbejder.ID, Medarbejder.Navn, Sum(DateDiff('n',[Start],[slut])/60-0.5) AS Timer FROM (Slut INNER JOIN Start ON (Slut.Dato = Start.Dato) AND (Slut.ID = Start.ID)) INNER JOIN Medarbejder ON Slut.ID = Medarbejder.ID WHERE (((Start.Dato)>=#"
SQL = SQL & til
SQL = SQL & "#) AND ((Slut.Dato)<=#"
SQL = SQL & fra
SQL = SQL & "#) AND Medarbejder.ID = '"
SQL = SQL & id
SQL = SQL & "');"
 

Som gerne skulle vise antal timer som en bestemt merarbejder har i en betesmt periode, men jeg får en fejl

Microsoft JET Database Engine error '80040e07'

Syntax error in date in query expression '(((Start.Dato)>=#30:10:2002#) AND ((Slut.Dato)<=#28:10:2002#) AND Medarbejder.ID = '97040')'.

/Tester.asp, line 32

som jeg ikke aner hvad er og hvad betyder, kan nogen hhjælpe
Avatar billede di8leva Nybegynder
30. oktober 2002 - 11:28 #1
jag tror SQL skall vare:
(((Start.Dato)>='30:10:2002') AND ((Slut.Dato)<='28:10:2002') AND Medarbejder.ID = '97040')'.

# skall byttes till '
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 11:37 #2
nope, det virker ikke
Avatar billede di8leva Nybegynder
30. oktober 2002 - 11:46 #3
samme fejl-meddelelse?
Avatar billede eagleeye Praktikant
30. oktober 2002 - 11:56 #4
Dato format skal være i mm-dd-yyyy når derer SQL selvom det er i DK format i databasen... Formater yyyy-mm-dd kan også anvendes. Så bruges "-" eller "/" som skille tegn ":" buges som skille tegn ved tids angivelse.
Avatar billede eagleeye Praktikant
30. oktober 2002 - 12:13 #5
Så fra og til skal laves i stil med:

fra = Month(fra) & "-" & Day(fra) & "-" & Year(fra)
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 12:19 #6
hvordan og hvad er det så lige jeg skal gøre
Avatar billede eagleeye Praktikant
30. oktober 2002 - 12:25 #7
hvor kommer til og fra  fra?
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 12:26 #8
nu er det ingen hemmelighed at jeg ikke er en haj til asp, skal det du skrev placeres i formsiden eller den side som viser restultat
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 12:27 #9
fra     = request.querystring("FraDato")
    til     = request.querystring("TilDato")
henter det fra en anden side
Avatar billede eagleeye Praktikant
30. oktober 2002 - 12:27 #10
Det skal være lige før du laver SQL sætningen:

fra = Month(fra) & "-" & Day(fra) & "-" & Year(fra)
til = Month(til) & "-" & Day(til) & "-" & Year(til)

SQL = "SELECT Medarbejder.ID, Medarbejder.Navn, Sum(DateDiff('n',[Start],[slut])/60-0.5) AS Timer FROM (Slut INNER JOIN Start ON (Slut.Dato = Start.Dato) AND (Slut.ID = Start.ID)) INNER JOIN Medarbejder ON Slut.ID = Medarbejder.ID WHERE (((Start.Dato)>=#"
SQL = SQL & til
SQL = SQL & "#) AND ((Slut.Dato)<=#"
..
..
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 12:30 #11
Microsoft JET Database Engine error '80040e21'

You tried to execute a query that does not include the specified expression 'ID' as part of an aggregate function.
nu får jeg denne fejl
Avatar billede webmasterdk Praktikant
30. oktober 2002 - 12:36 #12
Yderst beskrivende overskrift!
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 12:37 #13
jeg kunne ikke finde på noget bedre
Avatar billede webmasterdk Praktikant
30. oktober 2002 - 12:39 #14
Hvad med Fx: Sql driller, JET db.. etc
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 12:41 #15
det er ikke lige mit største problem lige nu, men det skal jeg da huske til en anden gang
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 15:04 #16
SELECT Medarbejder.ID, Medarbejder.Navn, Sum(DateDiff('n',[Start],[slut])/60-0.5) AS Timer FROM (Slut INNER JOIN Start ON (Slut.Dato = Start.Dato) AND (Slut.ID = Start.ID)) INNER JOIN Medarbejder ON Slut.ID = Medarbejder.ID WHERE ((cdate(Start.Dato)>='29-10-2002') AND (cdate(Slut.Dato)<='28-10-2002') AND Medarbejder.ID = '97040')
Microsoft JET Database Engine error '80040e21'

You tried to execute a query that does not include the specified expression 'ID' as part of an aggregate function.

/Tester.asp, line 42
kan nogen fortælle mig, hvor fejlen evt, kunne være, det virkede fint i access
Avatar billede eagleeye Praktikant
30. oktober 2002 - 15:05 #17
Prøv at rette denne JOIN
(Slut INNER JOIN Start ON (Slut.Dato = Start.Dato) AND (Slut.ID = Start.ID))

Til denne, det skulle kun være nødvendit med en kolonne at JOINe på:
(Slut INNER JOIN Start ON (Slut.ID = Start.ID))
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 15:13 #18
jeg får samme fejl medd. igen :-/
Avatar billede eagleeye Praktikant
30. oktober 2002 - 15:18 #19
Måske ved denne:

JOIN Medarbejder ON Slut.ID = Medarbejder.ID

Til start.ID da medarbjeder JOIN på start som det lige ser ud:

JOIN Medarbejder ON Start.ID = Medarbejder.ID
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 15:26 #20
nope, virker stadigvæk ikke
Avatar billede eagleeye Praktikant
30. oktober 2002 - 15:41 #21
Skal ID i start og slut være lig hinadnen hvor man joiner??

Hvad er det du helt præsist ønsker? Er udgangspunktet medarbejder og så skal start og slut JOIN på medarbejder??
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 15:43 #22
det ejg gerne vil have det til
er at man vælger start dato og slut dato og vælger en bestem medarbejder, derefter skal man se hvormange timer den medarbejder har haft i den periode
Avatar billede eagleeye Praktikant
30. oktober 2002 - 15:45 #23
Så Start.ID vil være lig Slut.ID ?
Er Start og slut.ID så lig medarbejder.ID ?
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 15:50 #24
ja
Avatar billede eagleeye Praktikant
30. oktober 2002 - 15:51 #25
Hvad med denne:

Sum(DateDiff('n',[Start],[slut])/60-0.5) AS Timer

Hvod kommer [start], [slut] fra her, er det kolonner eller tabel, hvis det er kolonner så angiv tabelnavnet foran.. xx.start hvis det er tabel mangler kolonnenavnet: [start].dato
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 15:53 #26
ok, har fundet ud af det, man skal åbenbart bruge group by Medarbejder.Id, Medarbejder.Navn, når man bruger sum
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 15:54 #27
nu får jeg ingen fejl medd, men data'erne bliver ikke vist
Avatar billede xyz74 Nybegynder
30. oktober 2002 - 15:57 #28
jeg vender tilbage imorgen, gider ikke emre idag
Avatar billede initializing Nybegynder
30. oktober 2002 - 15:57 #29
Lav en bedre overskrift!
Avatar billede eagleeye Praktikant
30. oktober 2002 - 15:57 #30
Har du stadig Start.dato = Slut.dato  i Join for det betyder den kun JOIN'er dem hvis der stå samme dato i Start.Dato og Slut.Dato
Avatar billede xyz74 Nybegynder
31. oktober 2002 - 07:43 #31
ja det har jeg, og ja det virker fint hvis jeg vælger samme start og slut dato, hvad skal jeg gøre??, please hjælp :-/
Avatar billede xyz74 Nybegynder
31. oktober 2002 - 08:05 #32
hvis jeg fjerner Start.dato = Slut.dato , bliver udregningen forkert
Avatar billede xyz74 Nybegynder
31. oktober 2002 - 12:54 #33
nå men jeg har fået hjælp andet sted
(Start.Dato)>='30-10-2002')
(Slut.Dato)<='29-10-2002')

Change this to
(Start.Dato)>='29-10-2002')
(Slut.Dato)<='30-10-2002')

eagleye dine point, fordi du har brugt tid på at hjælpe :-)
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