Tjena!
Jag håller på med en webbshop där kostnaden för frakt kommer vara olika beroende på vad man köpt.
Min tabelldesign ser ut såhär:
[b]tbl_shopProd[/b] (Produkter i shoppen)
prodId, räknare
prodName, text
.....
prodWeight, tal
[b]tbl_shopOrderHead[/b] (Orderhuvud)
orderId, räknare
custNum, tal
[b]tbl_shopOrderRow[/b] (Orderrad)
rowId, räknare
orderId, tal
prodId, tal
Dom tre tabellerna måste jag använda mig av för att få fram ett resultat.
Nu vill jag alltså summera vikten från tbl_shopProd där idnumret finns i tbl_shopOrderRow och där orderId är tex. '1'.
Har funderat lite fram och tillbaks på det här, men jag vet inte om det kanske finns lättare sätt?
Säg till om jag förklarat konstigt, eller om jag ska visa mer kod.
DBMS är Access och jag använder ASP.
Tack på förhand!
Nu har jag löst det.
Det finns kanske bättre sätt än mitt, så kom gärna med förslag om det är något jag bör ändra.
Såhär gjorde jag:
Function sumWeight(chartId)
If isNumeric(chartId) Then
sSql = "SELECT t1.orderId AS master_id, orderSession, t2.orderId AS slave_id, prodId " &_
"FROM tbl_shopOrderHead t1 INNER JOIN tbl_shopOrderRow t2 " &_
"ON t1.orderId = t2.orderId " &_
"WHERE orderSession = " & chartId & " " &_
"ORDER BY prodId ASC"
' Response.Write(sSql) : Response.End
Set rsTmp = oConn.Execute(sSql)
If Not rsTmp.EOF Then
tmpStr = 0
While Not rsTmp.EOF
tmpStr = rsTmp("prodId")
resStr = tmpStr & "," & resStr
rsTmp.MoveNext
Wend
End If
Set rsTmp = Nothing
weightStr = Left(resStr, Len(resStr) - 1)
sSql = "SELECT SUM(prodWeight) " &_
"FROM tbl_shopProd " &_
"WHERE prodId IN(" & weightStr & ")"
' Response.Write(sSql) : Response.End
Set rsTmp = oConn.Execute(sSql)
If Not rsTmp.EOF Then resStr = rsTmp(0) Else resStr = "Feeel" End If
Set rsTmp = Nothing
sumWeight = resStr
Else
sumWeight = "Ett fel uppstod vid beräkning..."
End If
End Function
Funkar fint ;)
emissionMedlem sedan dec. 19996 721 inlägg strSQL = "SELECT SUM(p.prodWeight) FROM tbl_shopProd p, tbl_shopOrderHead h, tbl_shopOrderRow r WHERE p.prodId=r.prodId AND r.orderId=p.orderId AND orderSession= " & chartId
chartId?