Avatar billede mlindegaard Nybegynder
22. april 2004 - 12:37 Der er 7 kommentarer og
2 løsninger

Fejl i SQL sætning

Hej.

Jeg har siddet og lavet følgende sql sætning. Og der bliver ved med at være en fejl, og jeg har stirret mig blind på koden.

Koden er:


SQLstmt = "SELECT "
  SQLstmt = SQLstmt & "(ArticleAmount * (SELECT pris FROM shoppen WHERE varenr = ShoppingCartItems.ArticleID)) AS ArticlePriceTotal, "
  SQLstmt = SQLstmt & "(SELECT pris FROM shoppen WHERE varenr = ShoppingCartItems.ArticleID) AS ArticlePrice, "
  SQLstmt = SQLstmt & "(SELECT navn FROM shoppen WHERE varenr = ShoppingCartItems.ArticleID) AS ArticleText, "
  SQLstmt = SQLstmt & "ArticleID, ArticleAmount "
  SQLstmt = SQLstmt & "FROM ShoppingCartItems WHERE CartID = " & Session("CartID") & " LIMIT 1; "
  Set RSList = Conn.Execute(SQLstmt)

Fejlen:
ADODB.Recordset.1 (0x80004005)
SQLState: 42000 Native Error Code: 1064 [TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT pris FROM shoppen WHERE varenr = ShoppingCartItems.Artic
include/cart.asp, line 54
Avatar billede thomas_yde Nybegynder
22. april 2004 - 12:51 #1
Kan du ikke lige skrive SQLstmt ud i stedet for. Det er rimelig uoverskueligt
Avatar billede mlindegaard Nybegynder
22. april 2004 - 12:52 #2
SELECT (ArticleAmount * (SELECT pris FROM shoppen WHERE varenr = ShoppingCartItems.ArticleID)) AS ArticlePriceTotal, IN (SELECT pris FROM shoppen WHERE varenr = ShoppingCartItems.ArticleID) AS ArticlePrice, IN (SELECT navn FROM shoppen WHERE varenr = ShoppingCartItems.ArticleID) AS ArticleText, ArticleID, ArticleAmount FROM ShoppingCartItems WHERE CartID = '2';
Avatar billede ocp Nybegynder
22. april 2004 - 12:53 #3
MySQL accepterer ikke subqueries. Derfor virker din kode ikke.
Avatar billede mlindegaard Nybegynder
22. april 2004 - 12:54 #4
ocp>
hvad gør man så?
Avatar billede overchord Nybegynder
22. april 2004 - 13:34 #5
SELECT (ShoppingCartItems.ArticleAmout*shoppen.pris) AS ArticlePriceTotal, (shoppen.pris) AS ArticlePrice, (shppen.navn) AS ArticleText, ShoppingCartItems.AritcleID, ShoppingCartItems.ArticleAmount FROM ShoppingCartItems INNER JOIN shoppen on ShoppingCartItems.ArticleID = Shoppen.varenr WHERE CartID='2';
Avatar billede mlindegaard Nybegynder
22. april 2004 - 13:46 #6
overchord>>
Det ser meget godt ud, jeg får dog en fejl som jeg ikke kan forstå!

ADODB.Recordset.1 (0x80004005)
SQLState: S1000 Native Error Code: 1109 [TCX][MyODBC]Unknown table 'Shoppen' in on clause
Avatar billede ocp Nybegynder
22. april 2004 - 14:01 #7
overchord har den rigtige løsning. Der har bare sneget sig et stort S ind. I MySQL skal man sørge for at benytte samme "case" hele vejen igennem... dvs. enten Shoppen eller SHOPPEN eller shoppen - bare det benyttes konsekvent.
Avatar billede overchord Nybegynder
23. april 2004 - 10:51 #8
oops ja - den var lige glippet plus at der stod shppen et sted fremfor shoppen - men godt at du fik det til at virke :-)
Avatar billede thomas_yde Nybegynder
23. april 2004 - 11:20 #9
ocp er MySql ikke "case" på tabeller ?
Hvis tabellen hedder Shoppen kan man vel ikke kalde den med shoppen vel?
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