webForumDet fria alternativet
Logga in / Bli medlem

hur sortera?

Databaser & SQL

4 svar · 184 visningar · startad av peter

Medlem sedan dec. 1999116 inlägg
Frågan#1

halojsan :)

är i lite behov av hjälp. hoppas nån kan och vill hjälpa. :)

jag har följande SQL-sats som nästan funkar som jag vill:

SELECT koplat.latid, COUNT(koplat.latid) AS antal
FROM koplat, kop
WHERE koplat.kopid = kop.kopid AND
kop.datum BETWEEN '12-23-2001' AND '12-23-2002'
GROUP BY koplat.latid

jag får då fram latid vilket är en viss låts id och så får jag ju fram antal som visar hur många gånger varje låt(id) har blivit köpt.

Problemet är att jag skulle vilja sortera efter antal. Alltså att den låt som köpts flest gånger kommer överst.

Det jag ska åstakomma är alltså en topplista på vilka låtar som sålt mest under en viss tidsperiod. i detta fall under ett år.

Testade med ORDER BY antal ASC men det funkade inte alls. Klagar på att kolumnen inte finns. :/

Tacksam för hjälp

//Peter

[Redigerat av peter den 16 jan 2002]

Medlem sedan dec. 200012 464 inlägg
#2

Det låter som Access, testa så här då.

SELECT koplat.latid, COUNT(koplat.latid) AS antal
FROM koplat, kop
WHERE koplat.kopid = kop.kopid AND
kop.datum BETWEEN '12-23-2001' AND '12-23-2002'
GROUP BY koplat.latid
order by 2
Medlem sedan dec. 1999116 inlägg
#3

nepp... inte access... använder interbase 5.5...

tyvärr funka de det inte..

Medlem sedan dec. 200012 464 inlägg
#4

Interbase - en vit fläck för mig.

så här då ?

SELECT koplat.latid, COUNT(koplat.latid) AS antal
FROM koplat, kop
WHERE koplat.kopid = kop.kopid AND
kop.datum BETWEEN '12-23-2001' AND '12-23-2002'
GROUP BY koplat.latid
order by COUNT(koplat.latid)

eller så kan du skapa en vy


create view v as 
SELECT koplat.latid, COUNT(koplat.latid) AS antal
FROM koplat, kop
WHERE koplat.kopid = kop.kopid AND
kop.datum BETWEEN '12-23-2001' AND '12-23-2002'
GROUP BY koplat.latid

och göra

select * from v order by antal

eller möjligen

select * from (
SELECT koplat.latid, COUNT(koplat.latid) AS antal
FROM koplat, kop
WHERE koplat.kopid = kop.kopid AND
kop.datum BETWEEN '12-23-2001' AND '12-23-2002'
GROUP BY koplat.latid) as v
order by antal
Medlem sedan dec. 1999116 inlägg
#5

sorry... :) det fungerade ju hur bra som helst... jag som inte hade en uppdaterad version av databasen hemma... :) den "riktiga" databasen e i skolan...

Tack LarsG!!

[Redigerat av peter den 16 jan 2002]

258 ms totalt · 4 externa anrop · v20260731065814-full.05830320
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)