select playerId,
scoreName,
list0,
list1,
list2,
list3,
list4,
coalesce(list0,0) +
coalesce(list1,0) +
coalesce(list2,0) +
coalesce(list3,0) +
coalesce(list4,0) as totalscore
from (SELECT h1.playerId,
h1.scoreName,
(SELECT max(scorePoints)
FROM tbl_highscores
WHERE scoreListId = 0
AND playerId = h1.playerId) AS list0 ,
(SELECT max(scorePoints)
FROM tbl_highscores
WHERE scoreListId = 1
AND playerId = h1.playerId) AS list1 ,
(SELECT max(scorePoints)
FROM tbl_highscores
WHERE scoreListId = 2
AND playerId = h1.playerId) AS list2 ,
(SELECT max(scorePoints)
FROM tbl_highscores
WHERE scoreListId = 3
AND playerId = h1.playerId) AS list3 ,
(SELECT max(scorePoints)
FROM tbl_highscores
WHERE scoreListId = 4
AND playerId = h1.playerId) AS list4
FROM tbl_highscores h1
GROUP BY h1.playerId ) dt
ORDER BY totalScore DESC
LIMIT 0, 10
Hallojse,
fick fin hjälp med hur man kan addera värden rakt i SQL. http://www.webforum.nu/showthread.php?t=173282
columnA + columnB AS nycolumn
Försöker mig på detta samt att slå ihop flera kolumner och sortera men får inte ihop det.
exempel vad jag vill ha ut se nedan, vill t.ex. sortera på totala summan som slår ihop allt.
player list1 list2 summa av listor
1 20 30 50
2 40 20 60
Det som plockas ut är unika användares top poäng från varje lista (en användare kanske inte finns med i alla listor). Sedan vill ja dynamiskt kunna ändra på vilken lista eller totala jag vill sortera på.
e.g.
ORDER BY totalScore DESC
ORDER BY list2 DESC
Verkar funka när jag väljer listorna men totalScore vill sig inte, kan det vara att talen kanske blir 20,30,NULL,30,NULL som den försöker slå ihop?
SELECT h1.playerId,h1.scoreName,
(SELECT max(h2.scorePoints) FROM tbl_highscores h2 WHERE h2.scoreListId = 0 AND h2.playerId = h1.playerId) AS list0 ,
(SELECT max(h3.scorePoints) FROM tbl_highscores h3 WHERE h3.scoreListId = 1 AND h3.playerId = h1.playerId) AS list1 ,
(SELECT max(h4.scorePoints) FROM tbl_highscores h4 WHERE h4.scoreListId = 2 AND h4.playerId = h1.playerId) AS list2 ,
(SELECT max(h5.scorePoints) FROM tbl_highscores h5 WHERE h5.scoreListId = 3 AND h5.playerId = h1.playerId) AS list3 ,
(SELECT max(h6.scorePoints) FROM tbl_highscores h6 WHERE h6.scoreListId = 4 AND h6.playerId = h1.playerId) AS list4 ,
(SELECT SUM(list0+list1+list2+list3+list4)) AS totalScore
FROM tbl_highscores h1
GROUP BY h1.playerId
ORDER BY totalScore DESC
LIMIT 0, 10