webForumDet fria alternativet

Top fem...

3 svar · 205 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Hej nu är jag här igen.
Jag försöker att via min SQL ta fram TOP 5 på listan.
Inga problem, men det som är galet är att den räknar inte antal 1:sta platser.
Vad jag menar är om:

Heja har 2 1:a platser
Tjola har 4 1:a platser

då bör ju Tjola stå före Heja. Är ni med???
Så här försöker jag:

SELECT DISTINCT TOP 5 t_SongTitlar.ArrNo, 
t_SongTitlar.songtitel, t_Placering.Placering, t_Område.Område
FROM (t_Område INNER JOIN t_Placering ON (t_Område.omr_Id =
t_Placering.omr_Id) AND (t_Område.omr_Id = 
t_Placering.omr_Id)) INNER JOIN t_SongTitlar ON 
t_Placering.ArrNo = t_SongTitlar.ArrNo
WHERE (((t_Område.Område)="Sverige"))
ORDER BY t_Placering.Placering;

Något bra förslag till att ändra på detta?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Jag förstår inte riktigt hur du tänker sortera? Vill du bara ha de som har haft flest 1:a platser?

SELECT TOP 5 t_SongTitlar.ArrNo, 
t_SongTitlar.songtitel, count(t_Placering.Placering), t_Område.Område
FROM (t_Område INNER JOIN t_Placering ON (t_Område.omr_Id =
t_Placering.omr_Id) AND (t_Område.omr_Id = 
t_Placering.omr_Id)) INNER JOIN t_SongTitlar ON 
t_Placering.ArrNo = t_SongTitlar.ArrNo
WHERE t_Område.Område='Sverige'
 and placering = 1
group by _SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område
ORDER BY 3 desc
sawMedlem sedan mars 20011 880 inlägg
#3

Jo du har tänkt rätt. Resultat skall alltså bli en lista med den titel som har flest 1:a platser, näst bäst osv.

Vad jag funderar över är din ORDER BY 3 desc
Var kom 3:an ifrån?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

3 betyder tredje uttrycket i select-listan.

I andra dbms kan man använda ett alias men det har inte access stöd för.

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