02. april 2006 - 21:12Der er
1 kommentar og 1 løsning
Hver vare skal kun vises én gang ved optælling
En side skal vise samlet antal solgte varer for hvert respektive produktID. Det gør nedenstående kode. Men hvis en vare figurerer flere gange, vises de første køb også, fx: ID: 1 - Navn1 - Antal: 1 ID: 2 - Navn2 - Antal: 3 ID: 2 - Navn2 - Antal: 6 ID: 2 - Navn2 - Antal: 9
Hvordan undgår jeg det?
Kode:
i1 = 0
call dbStartStr("SELECT * FROM OrderList INNER JOIN Orders ON OrderList.OrderID = Orders.ID WHERE Orders.ID > 362 and Orders.Confirmed = True ORDER BY OrderList.ProductID") while not rs.eof i1 = i1 + 1 vin(i1,1) = rs("ProductID") vin(i1,2) = rs("Vinnavn") vin(i1,3) = rs("Antalkasser") samlet = samlet + vin(i1,3) rs.movenext wend
vin(0,0) = i1
call dbStopStr()
for i1 = 1 to vin(0,0) if forrige(1) = vin(i1,1) then vin(i1,3) = vin(i1,3) + forrige(3) end if response.write "<tr><td colspan='4'> ID: " & vin(i1,1) & " - " & vin(i1,2) &" - Antal: " & vin(i1,3) &"</td></tr>"
forrige(1) = vin(i1,1) forrige(2) = vin(i1,2) forrige(3) = vin(i1,3) next
Du kan lave SQL sætningen sådan den regner det ud med sum af antal og så bruge group by:
call dbStartStr("SELECT ProductID, Vinnavn, sum(Antalkasser) as sumAntalkasser FROM OrderList INNER JOIN Orders ON OrderList.OrderID = Orders.ID WHERE Orders.ID > 362 and Orders.Confirmed = True GROUP BY ProductID, Vinnavn ORDER BY OrderList.ProductID")
Din kode som henter fra database og ligger i arrayet vil komme til at se sådan her ud:
call dbStartStr("SELECT ProductID, Vinnavn, sum(Antalkasser) as sumAntalkasser FROM OrderList INNER JOIN Orders ON OrderList.OrderID = Orders.ID WHERE Orders.ID > 362 and Orders.Confirmed = True GROUP BY ProductID, Vinnavn ORDER BY OrderList.ProductID") while not rs.eof i1 = i1 + 1 vin(i1,1) = rs("ProductID") vin(i1,2) = rs("Vinnavn") vin(i1,3) = rs("sumAntalkasser") samlet = samlet + vin(i1,3) rs.movenext wend
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.