* Der Schütze kann beliebig viele Serien beschießen.
* Eine Serie hat 5 Schuss (LG) oder 3 Schuss (KK) auf 10er Spiegel
* Mindestens 5 Serien zur Preisberechtigung lösen
* Bester Schütze ist wer die meisten 50er (LG) bzw. 30er (KK) schießt.
Beispiel:
Code: Alles auswählen
----------------------------------------
|Name |50er|49er|48er|47er|46er|Rest|
----------------------------------------
|Alice | 3 | 2 | | | | |
|Bob | 2 | 2 | | 1 | | |
|Charlie | 2 | 1 | 4 | 1 | | |
|Danielle| | 5 | 2 | 1 | 1 | 1 |
----------------------------------------
Ich füge noch die Prozedur bei die ich als Laie geschrieben habe um die Auswertung aus SSMDB2 abzugreifen.
Code: Alles auswählen
DELIMITER $$
CREATE PROCEDURE Beste_Ringzahl(veranstaltung INT, disziplin INT, schusszahl INT)
BEGIN
SELECT StarterlistenID, DisziplinlID, StartNr, CONCAT(Nachname,', ',Vorname) as Name,
(SELECT COUNT(*) FROM Scheiben AS Bb WHERE Bb.TotalRing=(schusszahl*100 ) AND Aa.StartNr=Bb.StartNr AND Aa.DisziplinlID=Bb.DisziplinlID) AS Max0,
(SELECT COUNT(*) FROM Scheiben AS Bb WHERE Bb.TotalRing=(schusszahl*100-10) AND Aa.StartNr=Bb.StartNr AND Aa.DisziplinlID=Bb.DisziplinlID) AS Max1,
(SELECT COUNT(*) FROM Scheiben AS Bb WHERE Bb.TotalRing=(schusszahl*100-20) AND Aa.StartNr=Bb.StartNr AND Aa.DisziplinlID=Bb.DisziplinlID) AS Max2,
(SELECT COUNT(*) FROM Scheiben AS Bb WHERE Bb.TotalRing=(schusszahl*100-30) AND Aa.StartNr=Bb.StartNr AND Aa.DisziplinlID=Bb.DisziplinlID) AS Max3,
(SELECT COUNT(*) FROM Scheiben AS Bb WHERE Bb.TotalRing=(schusszahl*100-40) AND Aa.StartNr=Bb.StartNr AND Aa.DisziplinlID=Bb.DisziplinlID) AS Max4,
(SELECT COUNT(*) FROM Scheiben AS Bb WHERE Bb.TotalRing<(schusszahl*100-40) AND Aa.StartNr=Bb.StartNr AND Aa.DisziplinlID=Bb.DisziplinlID) AS Rest
FROM Scheiben AS Aa
WHERE StarterlistenID=veranstaltung AND DisziplinlID=disziplin
GROUP BY StartNr, DisziplinlID
ORDER BY Max0 DESC, Max1 DESC, Max2 DESC, Max3 DESC, Max4 DESC, Rest DESC;
END $$
DELIMITER;