Avatar billede Slettet bruger
16. juni 2002 - 10:29 Der er 3 kommentarer og
2 løsninger

Henta antal poster der er ens fra DB

Jeg har en række poster i min DB:

id | kurv_id | produkt_id | antal
1    1        6            1
2    1        49          2
3    1        12          1
4    1        9            1
5    1        9            1
6    1        49          1


Som det er nu udskriver jeg alt dette for at vise hvad der ligger i kurven.

Men:

Jeg vil gerne have at dubletter udskrives som et antal, i ovenstående tilfælde skal det altså udskrives som:

1 stk produkt 6
3 stk produkt 49
1 stk produkt 12
2 stk produkt 9

Min kode for at udskrive indholdet ser lige nu således ud:

<select>

<%

strQuery = "SELECT * FROM kurv_indhold WHERE kurv_id = 1"
Set RS = Myconn.Execute(strQuery)
do while not RS.eof

strQuery = "SELECT * FROM produkter WHERE id = " & RS("produkt_id") & ""
Set RS2 = Myconn.Execute(strQuery)
do while not RS2.eof
response.write "<option value="& RS2("id") & ">" & RS("antal") & " stk " & RS2("overskrift")

RS2.MoveNext
loop
RS2.Close

RS.MoveNext
loop
RS.Close
%>

</select>
Avatar billede hansk Nybegynder
16. juni 2002 - 11:33 #1
Du skal skrive:

SELECT produkt_ID, sum(antal) from kurv_indhold WHERE kurv_id = 1
GROUP BY produkt_ID
Avatar billede pato Nybegynder
16. juni 2002 - 12:21 #2
Når du grupperer er det vigtigt at de felter med som du har i SELECT også er i GROUP BY. Og sum(xx) skal have et AS navn.

Så hvis du feks. skal have produktnavnet med skal den med både i SELECT og i BROUP BY!


strQuery = "SELECT produkt_ID, Sum(antal) AS tempantal,Productname FROM kurv_indhold WHERE kurv_id = 1 GROUP BY produkt_ID,Productname"

Set RS = Myconn.Execute(strQuery)
do while not RS.eof
response.write "<option value="& RS("produkt_ID") & ">" & RS("tempantal") & " stk " & RS("Productname")

RS.MoveNext
loop
RS.Close
Avatar billede hansk Nybegynder
16. juni 2002 - 12:21 #3
Du kan også lægge de to sql'er sammen:

SELECT produkt_ID, produktnavn, sum(antal)
from kurv_indhold, produkter
WHERE kurv_id = 1 and produkter.id=kurv_indhold.produkr_id
GROUP BY produkt_ID,produktnavn
Avatar billede Slettet bruger
16. juni 2002 - 13:40 #4
Fik det til at virke med:

SELECT kurv_id, produkt_id, Sum(antal) AS tempantal FROM kurv_indhold WHERE kurv_id = 1 GROUP BY produkt_id, kurv_id

Tak til jer begge :)
Avatar billede pato Nybegynder
18. juni 2002 - 20:32 #5
anytime :-)
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