Avatar billede bruhnsweb Nybegynder
16. februar 2005 - 16:56 Der er 5 kommentarer og
1 løsning

Tæl antal mest solgte varer

Hej Eksperter

Jeg er kommet i problemer med hvordan jeg skal foretage denne tælling.

Jeg skal lave en liste over meste solgte varer.

Den skal tælle antal varenumre fra tabellen [ordre_linjer] for derefter at gange dem det antal der er bestilt.

Eks.

varenummer  Antal
    2          3
    3          1
    2          1

Varenummer 2 får altså 4 - hvor varenummer 3 får 1.

Hvordan tæller jeg det, og derefter sorterer så den meste bestilte vare står øverst??

Databasen er MySQL

// Bruhn
Avatar billede flim Nybegynder
16. februar 2005 - 16:59 #1
Du bliver nødt til at rende hele din table igennem, putte det i et array og sortere derefter
Avatar billede bruhnsweb Nybegynder
16. februar 2005 - 17:01 #2
har du evt noget kode?
Avatar billede eagleeye Praktikant
16. februar 2005 - 17:24 #3
Du kan lave en SQL sætning som denne:

sql = "select sun(antal) as totalantal, varenummer from tabel group by varenummer oerder by totalantal desc"

Så summer den kolonnen antal for hver varenummer og den som er solgt mest af.

udskriv sådan her

Set rs= conn.Execute("select sun(antal) as totalantal, varenummer from tabel group by varenummer order by totalantal desc")

do while not rs.EOF
  response.write rs("varenummer") & " antal " & rs("totalantal") & "<br>"
  rs.Movenext
loop
Avatar billede bruhnsweb Nybegynder
18. februar 2005 - 14:20 #4
Hej eagleeye

Det virker ikke rigtig :o(


Fejlen:
--------------------------------------------------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.18-standard-log]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(antal) as totalantal, produkt_id from ordre_linjer group by pr

/admin/files/file_2.asp, line 50
--------------------------------------------------------------------------------------


Linje 50:
--------------------------------------------------------------------------------------
Set rs = conn.Execute("select sun(antal) as totalantal, produkt_id from ordre_linjer group by produkt_id order by totalantal desc")
--------------------------------------------------------------------------------------



Koden:
--------------------------------------------------------------------------------------
sql = "select sun(antal) as totalantal, produkt_id from ordre_linjer group by produkt_id order by totalantal desc"

Set rs = conn.Execute("select sun(antal) as totalantal, produkt_id from ordre_linjer group by produkt_id order by totalantal desc")

do while not rs.EOF
  response.write rs("produkt_id") & " antal " & rs("totalantal") & "<br>"
  rs.Movenext
loop
--------------------------------------------------------------------------------------
Avatar billede eagleeye Praktikant
18. februar 2005 - 14:21 #5
hov jeg har skrevet sun det skal være sum så prøv sådan her:

Set rs = conn.Execute("select sum(antal) as totalantal, produkt_id from ordre_linjer group by produkt_id order by totalantal desc")
Avatar billede bruhnsweb Nybegynder
18. februar 2005 - 14:33 #6
Det var da det :o)

Må også nok sige at jeg ikke lige kendte sun udtrykket ;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
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