sawMedlem sedan mars 20011 880 inlägg Jag skulle behöva ha lite hjälp med denna SQL, jag får inte ihop den.
Vad jag skulle vilja ha ut är,
Som bäst(alltså bästa placering)
Antal ggr(alltså hur många gånger har låten varit bäst)
Vilket område(Sverige Europa, Världen)
Jag har haft denna biten som grund:
SELECT
MIN(t_placering.placering) AS Bast,
Count(t_Placering.Placering) AS AntalPlac, 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_SongTitlar.songtitel = 'my friend' AND t_Placering.Placering <> 0
GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område
ORDER BY Bast,AntalPlac DESC
Jag får NÄSTAN fram rätt resultat, men jag har fel på hur han räknar. Jag ville ju få veta hur många gånger resp låt har varit bäst i resp område.
:OO
sawMedlem sedan mars 20011 880 inlägg Jag har kommit något längre, använt en annan SQL, men når ändå inte riktigt fram.
SELECT t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering,
Count(t_Placering.Placering) AS AntalGånger FROM t_Område
INNER JOIN (t_Placering INNER JOIN t_SongTitlar
ON t_Placering.ArrNo = t_SongTitlar.ArrNo)
ON (t_Område.omr_Id = t_Placering.omr_Id) AND (t_Område.omr_Id = t_Placering.omr_Id)
Where t_Placering.Placering <> 0
GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering
HAVING (t_SongTitlar.songtitel='my friend' )
ORDER BY CASE t_Område.Område WHEN 'Sverige' THEN 1 WHEN 'Europa' THEN 2 ELSE 3 END, Min(t_Placering.Placering)
Vad som är felet är att jag ville bara ha top resultatet ifrån alla tre områdenna.
Som det nu är, så får jag alla resultaten.
:OO
sawMedlem sedan mars 20011 880 inlägg Jag har kommit ännu längre. I QA så får jag nu fram de resulta som jag vill ha, men de ligger "under varandra".
Någon föreslog UNION ALL, hur bör det användas?
(SELECT top 1 t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering,
Count(t_Placering.Placering) AS AntalGångerSV FROM t_Område
INNER JOIN (t_Placering INNER JOIN t_SongTitlar
ON t_Placering.ArrNo = t_SongTitlar.ArrNo)
ON (t_Område.omr_Id = t_Placering.omr_Id) AND (t_Område.omr_Id = t_Placering.omr_Id)
Where t_Placering.Placering <> 0 AND t_Område.Område='sverige'
GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering
HAVING (t_SongTitlar.songtitel='my friend' ))
(SELECT top 1 t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering,
Count(t_Placering.Placering) AS AntalGångerEU FROM t_Område
INNER JOIN (t_Placering INNER JOIN t_SongTitlar
ON t_Placering.ArrNo = t_SongTitlar.ArrNo)
ON (t_Område.omr_Id = t_Placering.omr_Id) AND (t_Område.omr_Id = t_Placering.omr_Id)
Where t_Placering.Placering <> 0 AND t_Område.Område='europa'
GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering
HAVING (t_SongTitlar.songtitel='my friend' ))
(SELECT top 1 t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering,
Count(t_Placering.Placering) AS AntalGångerVrld FROM t_Område
INNER JOIN (t_Placering INNER JOIN t_SongTitlar
ON t_Placering.ArrNo = t_SongTitlar.ArrNo)
ON (t_Område.omr_Id = t_Placering.omr_Id) AND (t_Område.omr_Id = t_Placering.omr_Id)
Where t_Placering.Placering <> 0 AND t_Område.Område='världen'
GROUP BY t_SongTitlar.ArrNo, t_SongTitlar.songtitel, t_Område.Område, t_Placering.Placering
HAVING (t_SongTitlar.songtitel='my friend' ))
Är jag helt fel ute med all den här koden??