webForumDet fria alternativet

hur sortera?

4 svar · 184 visningar · startad av peter

peterMedlem sedan dec. 1999116 inlägg
#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]

LarsGMedlem 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

------------------
essentitia preter non sans multiplicandum

peterMedlem sedan dec. 1999116 inlägg
#3

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

tyvärr funka de det inte..

LarsGMedlem 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

------------------
essentitia preter non sans multiplicandum

peterMedlem 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]

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
119 ms — hämta tråd, inlägg och bilagor (db)