Skóre a události je třeba vnitřně propojit před jejich vnější spojení s hráči.
Mohli bychom použít poddotaz nebo závorky k vynucení tohoto konkrétního spojení „přednost“, ale je lepší použít pouze pořadí JOINů v textu SQL a poté pečlivě „orientovat“ poslední JOIN na hráče (v tomto případě SPRÁVNĚ).
COALESCE je pouze pro převod NULL na 0s.
SELECT
P_Id, LastName, FirstName, COALESCE(SUM(Points), 0) TotalPoints
FROM
Scores
JOIN Events
ON Event = E_Id AND Year = 2012
RIGHT JOIN Players
ON P_Id = Player
GROUP BY
P_Id, LastName, FirstName
ORDER BY
TotalPoints DESC;
To produkuje:
P_ID LASTNAME FIRSTNAME TOTALPOINTS
1 Hansen Ola 6
2 Svendson Tove 0
3 Pettersen Kari 0
Můžete si s ním hrát v tomto SQL Fiddle .