Behöver ytterligare en justering...
Nu summerar den alla omgångar men jag vill att den ska summera endast en omgång.
Fält för att para ihop omgångarna:
laginfo.CompID = resultat.KatID
Fält för att para ihop lagen
laginfo.id = resultat.lag
Tabell: laginfo
id || CompID || LagNamn || LagLedare
Tabell: resultat
KatID || score1 || score2 || time1 || time2 || lag ||
Har provat flera alternativ men ej lyckas, någos som vet hur jag ska göra?
Är det INNER JOIN som behöver justeras?
SELECT resultat.lag, LagNamn,
SUM(CASE WHEN rank1 BETWEEN 1 AND 3 THEN score1 ELSE 0 END) AS score1,
SUM(CASE WHEN rank1 BETWEEN 1 AND 3 THEN time1 ELSE 0 END) AS time1,
SUM(CASE WHEN rank2 BETWEEN 1 AND 3 THEN score2 ELSE 0 END) AS score2,
SUM(CASE WHEN rank2 BETWEEN 1 AND 3 THEN time2 ELSE 0 END) AS time2
FROM (SELECT *, rank() OVER (partition BY lag
ORDER BY score1, time1) AS 'rank1', rank() OVER (partition BY lag
ORDER BY score2, time2) AS 'rank2'
FROM resultat) AS resultat
INNER JOIN laginfo ON resultat.lag = laginfo.id
WHERE rank1 < 4 OR rank2 < 4
GROUP BY resultat.lag, laginfo.LagNamn
ORDER BY score1, score2, time2
Nästa fråga som listar spelarna ser ut såhär
SELECT * FROM
(SELECT rank() OVER (partition BY lag
ORDER BY score1, time1, score2, time2) AS 'rank',
lag, namn, score1, time1, score2, time2, T_pos
FROM resultat
WHERE Klass = 2) t
WHERE [rank] < 5
ORDER BY t_pos