webForumDet fria alternativet

Knivig SQL-sträng

7 svar · 270 visningar · startad av Pikkenix

PikkenixMedlem sedan mars 2003116 inlägg
#1

Kan någon hjälpa mig med att utforma en SQL sträng till detta, står helt still i skallen på mig...

Tabeller:

ARTIKLAR
-----
pris, artikelid

ORDERS
----
orderid, datum, betalning

ORDERARTIKLAR
----
orderid, artikelid

KUNDER
----
fnamn, enamn, epost

Det jag vill få fram i mitt recordset är följande:

orders.orderid, orders.datum, orders.betalning, SUM(artiklar.pris), kunder.fnamn, kunder.enamn, kunder.epost

Tacksam för all hjälp jag kan få.

OveRRidEMedlem sedan feb. 200112 078 inlägg
#2

Felpostad, flyttas till SQL. Det här har inget med ASP eller VBScript att göra.

MVH
OveRRidE

moderator, webForum

SebbeMedlem sedan jan. 20032 285 inlägg
#3
strSQL = "SELECT orders.orderid, " &_
"orders.datum, " &_
"orders.betalning, " &_
"SUM(artikel.pris) AS pris, " &_
"kunder.fnamn, " &_
"kunder.enamn, " &_
"kunder.epost " &_
"FROM orders, artikel, kunder " &_
"WHERE orders.orderid = artikel.artikelid " &_
"AND orders.orderid = " & Request.QueryString("id")

Något sånt?
Fel forum för övrigt. /red OveRRidE han påpeka det ;)

PikkenixMedlem sedan mars 2003116 inlägg
#4

Problemet är att SUM(pris) som ligger i artikar måste gå via orderartikel tabellen, alltså måste jag använda nestade tabeller elelr join på något sätt..

PikkenixMedlem sedan mars 2003116 inlägg
#5

Denna sqlsats använder jag nu:

"SELECT orders.orderid, orders.datum, orders.betalning, kunder.fnamn, kunder.enamn, kunder.epost, kunder.kundID , SUM(artiklar.pris) as priset FROM orders, kunder, artiklar WHERE orders.status = 0 AND orders.kundid = kunder.kundID AND artiklar.artikelid = (SELECT orderartikel.artikelid FROM orderartikel WHERE orderartikel.artikelid = orders.orderid)"

Men då får jag följande fel:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'orderid'.

@ndersMedlem sedan juni 200032 969 inlägg
#6

Alla fält som du selectar, som inte ingår i SUM() (eller andra liknande funktioner) måste ingå i GROUP BY i din select-fråga. Prova följande:

SELECT orders.orderid, orders.datum, orders.betalning, kunder.fnamn, kunder.enamn, kunder.epost, kunder.kundID , SUM(artiklar.pris) as priset 
FROM orders, kunder, artiklar WHERE orders.status = 0 AND orders.kundid = kunder.kundID AND artiklar.artikelid = (SELECT orderartikel.artikelid FROM orderartikel WHERE orderartikel.artikelid = orders.orderid) 
GROUP BY orders.orderid, orders.datum, orders.betalning, kunder.fnamn, kunder.enamn, kunder.epost, kunder.kundID

Mvh

PikkenixMedlem sedan mars 2003116 inlägg
#7

SQL satsen är det inget fel på, däremot så returnerar den inget.. blir bara ett tomt recordset tyvärr...

PikkenixMedlem sedan mars 2003116 inlägg
#8

Ingen som har någon lösning?

125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)