Avatar billede ravnkilde Nybegynder
04. marts 2003 - 10:39 Der er 6 kommentarer og
1 løsning

INNER JOIN kombineret med en Session

Hej!

Jeg har en database, hvorfra jeg ønsker at trække flg. data:
Tabel 1: customers - felterne custID, cfirstname og clastname
Tabel 2: orders - felterne orderamount og orderID

Dataerne skal vælges på baggrund af en session.

Jeg kan ikke få min kode til at fungere. Hjælp!

--start på kode--

'SQL forespørgsel
    strSQL = "SELECT * customers.custID, customers.cfirstname, customers.clastname, orders.orderamount FROM customers WHERE custID = " & Session("customerid") & " INNER JOIN orders ON customers.custID = orders.ocustomerid"
    Set rs = objConn.Execute(strSQL)
    'Response.Write sætningen kan slettes - bruges p.t. som kontrol
    Response.Write rs("customers.custID") & rs("customer.cfirstname") & rs("customers.clastname") & rs("orderamount") & rs("orders.orderID")

--slut kode--
04. marts 2003 - 10:43 #1
Skal den ikke se sådan ud:

strSQL = "SELECT * customers.custID, customers.cfirstname, customers.clastname, orders.orderamount FROM customers INNER JOIN orders ON customers.custID = orders.ocustomerid WHERE custID = " & Session("customerid")
Avatar billede ravnkilde Nybegynder
04. marts 2003 - 10:57 #2
Giver denne fejlmeddelelse:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '* customers.custID'.

/webshop/proceed_payment.asp, line 11

Line 11 = Set rs = objConn.Execute(strSQL)
04. marts 2003 - 11:01 #3
ah, jeg tror nu heller ikke, at du skal have stjernen med:
strSQL = "SELECT customers.custID, customers.cfirstname, customers.clastname, orders.orderamount FROM customers INNER JOIN orders ON customers.custID = orders.ocustomerid WHERE custID = " & Session("customerid")

Alternativt, hvis du ønsker at have alle felter fra Orders med, så skal den se således ud:
strSQL = "SELECT Orders.*, customers.custID, customers.cfirstname, customers.clastname, orders.orderamount FROM customers INNER JOIN orders ON customers.custID = orders.ocustomerid WHERE custID = " & Session("customerid")
Avatar billede ravnkilde Nybegynder
04. marts 2003 - 11:15 #4
Nedenstående kode giver denne fejlmeddelelse:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/webshop/proceed_payment.asp, line 15 (response write-sætningen)


'SQL forespørgsel
    strSQL = "SELECT customers.custID, customers.cfirstname, customers.clastname, orders.orderamount, orders.orderID FROM customers INNER JOIN orders ON customers.custID = orders.ocustomerid WHERE custID = " & Session("customerid") & ""
   
    Set rs = objConn.Execute(strSQL)
    Response.Write rs("customers.custID") & rs("customers.cfirstname") & rs("customers.clastname") & rs("orders.orderamount") & rs("orders.orderID")
04. marts 2003 - 11:18 #5
Den skal vel også bare hedde:
Response.Write rs("custID") & rs("cfirstname") & rs("clastname") & rs("orderamount") & rs("orderID")
Avatar billede ravnkilde Nybegynder
04. marts 2003 - 11:22 #6
Ja, det fandt jeg ud af! Jeg havde bare kopieret sql-sætningen fra Access.

Tak for hjælpen, thomasjepsen.
04. marts 2003 - 11:24 #7
Anytime og tak point :o)
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