Avatar billede ameq Nybegynder
20. november 2002 - 14:54 Der er 54 kommentarer og
1 løsning

SQL (Group)

Hvorfor virker den her ik?
            strSQL = "select pizzaID, count('pizzaID') AS pizzatop5 From orderlist where (OrderStatus = '1') and (dato >='" & DateAdd("d", -7, date) & "') group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"
            Set top5 = Conn.Execute(strSQL)
Avatar billede erikjacobsen Ekspert
20. november 2002 - 14:56 #1
Måske
strSQL = "select pizzaID, count(pizzaID) AS pizzatop5 From orderlist where (OrderStatus = '1') and (dato >='" & DateAdd("d", -7, date) & "') group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"
Avatar billede soes Nybegynder
20. november 2002 - 14:58 #2
Hvilken database er det lige du bruger?
Avatar billede pfp Nybegynder
20. november 2002 - 15:00 #3
Hvad får du af fejl.
Umiddelbart kender jeg ikke lige noget til at der er noget der hedder LIMIT i ASP. Jeg troede det hørte til PHP, men du må ikke hænge mig op på det.

Derudover er der en del andre fejl, prøv med det her

strSQL = "select COUNT(pizzaID) AS pizzatop5 From orderlist where (OrderStatus = '1') and (dato >='" & DateAdd("d", -7, date) & "') group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"
Avatar billede erikjacobsen Ekspert
20. november 2002 - 15:01 #4
LIMIT hører hverken til ASP eller PHP med til MySql. Og ikke fx Access.
Når det nu er MySql kan datoformatet være et problem - der dog nemt kan løses.
Avatar billede soes Nybegynder
20. november 2002 - 15:02 #5
Hvis du bruger en Access database kan du ikke bruge LIMIT funktionen mener kun at den er understoettet af MySql og MsSql.
Hvis feltet orderstatus er en talvaerdi skal du ikke have ' ' omkring.
Hvis dit felt dato er et dato felt skal du skifte ' ' ud med # #
Avatar billede soes Nybegynder
20. november 2002 - 15:14 #6
strSql = "SELECT TOP 5 * FROM orderlist WHERE (OrderStatus = 1) AND (dato >= #" & DateAdd("d", -7, date) & "#) GROUP BY PizzaID ORDER BY [et_felt] DESC"
Avatar billede ameq Nybegynder
20. november 2002 - 15:15 #7
jeg bruger en MySQL server...
og dato står som dato() "asp var." i min database
Avatar billede erikjacobsen Ekspert
20. november 2002 - 15:18 #8
Du mener at datoen ikke står som fx 2002-11-20  ??
Avatar billede ameq Nybegynder
20. november 2002 - 15:22 #9
den står som 11/20/2002
Avatar billede erikjacobsen Ekspert
20. november 2002 - 15:29 #10
Det er jo et problem, der kan løses på flere måder.
1) Har du lyst til at lave formatet om til 2002-11-20 så det er nemt at søge på
2) Skal vi lave en oversmart SQL-sætning?

Står der så 1/1/2003 eller 01/01/2003  ?? Sikkert det første...
Avatar billede ameq Nybegynder
20. november 2002 - 15:58 #11
2) tak for jeg bruger den også til noget andet =) he he
Avatar billede ameq Nybegynder
20. november 2002 - 16:02 #12
men det skrive på den her måde "11/2/2000" det er bare date i asp jeg indskriver i min database
Avatar billede erikjacobsen Ekspert
20. november 2002 - 18:42 #13
strSQL = "select pizzaID, count(pizzaID) AS pizzatop5 From orderlist where (OrderStatus = '1') and concat(left(dato,locate('/',dato)-1)+100*mid(dato,locate('/',dato)+1,locate('/',m,4))+10000*mid(m,locate('/',m,4)+1,20),"000000")+0>date_sub(curdate(),interval 30 day)+0 group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"
Avatar billede erikjacobsen Ekspert
20. november 2002 - 18:42 #14
Sorry fik ikke rettet den helt til  - 2 sekunder
Avatar billede erikjacobsen Ekspert
20. november 2002 - 18:43 #15
strSQL = "select pizzaID, count(pizzaID) AS pizzatop5 From orderlist where (OrderStatus = '1') and concat(left(dato,locate('/',dato)-1)+100*mid(dato,locate('/',dato)+1,locate('/',dato,4))+10000*mid(dato,locate('/',dato,4)+1,20),"000000")+0>date_sub(curdate(),interval 7 day)+0 group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"
Avatar billede erikjacobsen Ekspert
20. november 2002 - 18:45 #16
strSQL = "select pizzaID, count(pizzaID) AS pizzatop5 From orderlist where (OrderStatus = '1') and concat(left(dato,locate('/',dato)-1)+100*mid(dato,locate('/',dato)+1,locate('/',dato,4))+10000*mid(dato,locate('/',dato,4)+1,20),'000000')+0>date_sub(curdate(),interval 7 day)+0 group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"

Sådan - du kan jo eventuelt prøve om den virker. Smæk det bare på én lang linie
Avatar billede ameq Nybegynder
20. november 2002 - 19:04 #17
okey den udskriver ikke rigtig noget (lige som før), men hvorfor er det lige at den ikke kan samme linge, det fra min database og asp verb. "date" ?? og jeg har lavet den uden alt det med dato ting....
(har den bare ikke her) men den er slet ikke så lange... + jeg har andre SQl linger hvor jeg "søger" efter datoen uden problemmer...
        strSQL = "select Count(*) AS iAntal from orderlist where (dato ='" & DateAdd("d", -7, date) & "') AND (orderstatus = '1')"
        set day7 = Conn.Execute(strSQL)
som virker som den skal
Avatar billede erikjacobsen Ekspert
20. november 2002 - 19:23 #18
Når der står måned/dato/aar kan den ikke lave en sammenligning på < og >. Og
det gør du ikke i den sidste. Jeg testede min på et liile eksempel. Må jeg se
hvad du skrev?

Et mindre hack kunne være:

(dato ='" & DateAdd("d", -7, date) & "') and (dato ='" & DateAdd("d", -6, date) & "') and (dato ='" & DateAdd("d", -5, date) & "') and ,,,,osv
Avatar billede erikjacobsen Ekspert
20. november 2002 - 19:23 #19
ups - det skal være "or" ikke "and"
Avatar billede ameq Nybegynder
20. november 2002 - 19:36 #20
vil du have helt den del fra min "top5" kode eller den sidste sql linge?
eller bare et link til den version som virker?
Avatar billede erikjacobsen Ekspert
20. november 2002 - 19:47 #21
Bare linien
Avatar billede ameq Nybegynder
20. november 2002 - 20:02 #22
min top5 som jeg bruger nu,
der er bare ikke det med dato
            strSQL = "select pizzaID, count('pizzaID') AS pizzatop5 From orderlist where OrderStatus = '1' group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"
            Set top5 = Conn.Execute(strSQL)
Avatar billede erikjacobsen Ekspert
20. november 2002 - 20:29 #23
Nåh, jeg tænktte på den "store" jeg gav dig
Avatar billede ameq Nybegynder
20. november 2002 - 20:36 #24
vilken he he =)
Avatar billede ameq Nybegynder
22. november 2002 - 11:04 #25
vilken line, skulle du have?
Avatar billede ameq Nybegynder
22. november 2002 - 11:58 #26
okey højt underlidt nu virker den her ikke på min der hjemme men på abrjdet virker den findt...
            strSQL = "select pizzaID, count('pizzaID') AS pizzatop5 From orderlist where OrderStatus = '1' group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"
            Set top5 = Conn.Execute(strSQL)
Avatar billede ameq Nybegynder
26. november 2002 - 14:34 #27
jeg har siget og prøvet en masse ting, og til sidste slettede jeg alle rs i min database... så add jeg bare en rs også virkede det... efter jeg add en til så der var to rs i min database virker det ikke hvorfor så det?
Avatar billede ameq Nybegynder
26. november 2002 - 14:34 #28
og antal af pizza'ren virker eller ikke...
Avatar billede ameq Nybegynder
26. november 2002 - 14:35 #29
også bare med en =)
Avatar billede erikjacobsen Ekspert
26. november 2002 - 14:36 #30
strSQL = "select pizzaID, count(*) AS pizzatop5 From orderlist where OrderStatus = '1' group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"
Avatar billede ameq Nybegynder
26. november 2002 - 14:48 #31
hm nej =( men bare jeg add en i min database, ude skriver den ikke i mit rs...
Avatar billede erikjacobsen Ekspert
26. november 2002 - 14:56 #32
Det er noget vrøvl du siger. Den sql-sætningen virker!
Avatar billede ameq Nybegynder
26. november 2002 - 15:02 #33
okey... ikke lige på min... og du må godt se..
http://developer.ameq.dk/pizzaonline/
i højer side (lige nu er der kun addet en)
skriv lige så add jeg en til...
Avatar billede ameq Nybegynder
26. november 2002 - 15:03 #34
sorry me bad =) jeg har lavet en fejl =) jeg add lige en til...
Avatar billede ameq Nybegynder
26. november 2002 - 15:04 #35
så har jeg add en til med OrderStatus 1
Avatar billede stig3 Mester
26. november 2002 - 15:13 #36
Lige en side bemærkning uden for emnet.

Det er et fedt design du/i har lavet på siden, men pas på med stavefejl. Det gi'r et dårligt indtryk når der er så mange og det har den ikke firtjent med så flot et design.
Avatar billede stig3 Mester
26. november 2002 - 15:14 #37
firtjent = fortjent :-)

Smart at kritisere stavefaajl nor man ik sælv ka stave
Avatar billede ameq Nybegynder
26. november 2002 - 15:15 #38
stig3 he he jeg staver af lort =) men der er en privat side =) så det gør ikke så meget men du skal have TAK =), men jeg har nolge mennesker bag mig som staver/retter for mig =) jeg scripter bare =) he he
Avatar billede stig3 Mester
26. november 2002 - 15:18 #39
fino
Avatar billede erikjacobsen Ekspert
26. november 2002 - 15:19 #40
Hmm ... er det så ikke det klassiske ASP<->Mysql-driver problem....?
Der er konfigurationer (jeg kommer i tanker om cliche.dk - men du
bruger azero), hvor en iøvrigt korrekt brug af count(*) simpelthen
giver et tomt recordset. SQL-sætningen er der nemlig intet i vejen med.
Avatar billede ameq Nybegynder
26. november 2002 - 15:22 #41
hm jeg bruger den her på en anden server (samme side)
            strSQL = "select pizzaID, count('pizzaID') AS pizzatop5 From orderlist where OrderStatus = '1' group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"
            Set top5 = Conn.Execute(strSQL)

den virker... og der enste jeg har lavet om er at min dato ikke er MySql dato men ASP datoen (date) kan det være det?
Avatar billede erikjacobsen Ekspert
26. november 2002 - 15:24 #42
Hvor bruger du dato?
Avatar billede ameq Nybegynder
26. november 2002 - 15:26 #43
ikke lige i den SQL... men jeg ved ikke hvad det eller skulle være/forskellen imellen de to sider/SQLer
Avatar billede erikjacobsen Ekspert
26. november 2002 - 15:30 #44
Men siger du at
strSQL = "select pizzaID, count('pizzaID') AS pizzatop5 From orderlist where OrderStatus = '1' group by PizzaID ORDER BY pizzatop5 DESC LIMIT 0,5"
virker forskelligt på 2 forskellige maskiner? Eller hvad?
Avatar billede ameq Nybegynder
26. november 2002 - 15:37 #45
yes
Avatar billede ameq Nybegynder
26. november 2002 - 15:38 #46
jeg ved tror kun at begge MySQL server er installer ens...
Avatar billede erikjacobsen Ekspert
26. november 2002 - 15:40 #47
Så har du jo løsningen. Den ene mysql-driver er defekt.
Avatar billede ameq Nybegynder
26. november 2002 - 15:41 #48
okey et link og jeg det kan godt være for min server kører af LORT =) he he
jeg har leget en tand for meget =) he he
Avatar billede ameq Nybegynder
26. november 2002 - 15:42 #49
men skal jeg bare tag mig sammen? =) og få lagt den om også vendt tilbage til spm?, der er bare lige er problem jeg har ikke tid/gider ik =) he he
Avatar billede ameq Nybegynder
26. november 2002 - 22:01 #50
jubii efter en LANG aften fik jeg min server op og kører ingen... =) nu skal jeg bare lige få set på den "lange" version af SQL linge =) men det kigger jeg måske på i mogen...
Avatar billede ameq Nybegynder
30. november 2002 - 20:24 #51
en som vil svar?
Avatar billede erikjacobsen Ekspert
30. november 2002 - 20:33 #52
Ikke mig - vi fik ikke nogen endegyldig og skudsikker løsning
Avatar billede ameq Nybegynder
30. november 2002 - 20:34 #53
nej eller Så har du jo løsningen. Den ene mysql-driver er defekt. <- det var svartet =)
Avatar billede ameq Nybegynder
30. november 2002 - 20:35 #54
men hvis du vil se den final version af den så?
Avatar billede ameq Nybegynder
11. december 2002 - 10:49 #55
svar
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