Just nu i M3-nätverket
Gå till innehåll

Göra en top-10 lista


christian

Rekommendera Poster

Hej, någon som har någon bra idé på hur jag gör en top 10? Låt säga så här jag har en tabell och gör så här, då funkar allt fint..

 

SELECT TOP 10 orderid, produktid, kvantitet

FROM tbl_produkt

ORDER BY kvantitet

 

Men om det är så att det finns tex tre rader med samma produktid, då vill jag att kvantiteten ska räknas i hop, så att totalsumman för dessa tre produkter blir den som räknas i top 10.. hur göra då?

 

Länk till kommentar
Dela på andra webbplatser

Förstår inte frågan, eller är det så att jag tidigare skrev att jag ville plocka ut orderid kanske.. Låt säga så här då.

 

SELECT TOP 5 produktid, kvantitet

FROM tbl_produkt

ORDER BY kvantitet

 

---------

Så här skulle jag vilja få ut det:

 

produktid kvantitet

55 200

54 100

52 98

56 97

75 87

 

I kolumen kan det finnas fler tex produktid av 55, då vill jag inte ha enskilda värden med i toplistan, önskar att summan räknas samman. I exemplet ovan finns i kolumnen en 55:a med kvantitet 50 och en till 55:a med kvantitet 50.

 

:thumbsup:

 

Länk till kommentar
Dela på andra webbplatser

select top 10 prodid,sum(kvant) from t3 group by prodid

 

I din första fråga ville du ha med orderid, och det är faktiskt omöjligt med det resultat du vill ha. Hur ska orderid visas? Eftersom man summerar flera värden, så är orderid helt irrellevant då det inte kan summeras.

 

Hoppas mitt svar hjälpte dig.

 

 

 

[inlägget ändrat 2005-11-17 22:08:25 av Mr Andersson]

Länk till kommentar
Dela på andra webbplatser

Tänkte på en annan sak, jag har en annan tabell som jag vill koppla i hop med detta. Tänk dig att jag får fram 10-i-top av prodid, men har själva namnen i annan tabell, när jag använder SUM och group by går det ju inge bra.. Tänkte då en union som lämplig lösning, men.. eller.. hur gör ska jag tänka?

 

select top 10 prodid,sum(kvant)

from t3

group by prodid

 

union

 

select *

from tbl_produkt AS x, tbl_produktnamn AS y

where x.prodid = y.id

 

 

Länk till kommentar
Dela på andra webbplatser

SELECT TOP (10) t3.prodid, SUM(t3.kvant) AS kvantsumma, t4.prodnamn FROM t3 INNER JOIN t4 ON t3.prodid = t4.prodid

GROUP BY t3.prodid, t4.prodnamn

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...