[gelöst] Neue Auswertung 'Beste Ringzahl'

Antworten
chriseindt
Beiträge: 1
Registriert: Mi 9. Nov 2016, 10:20

[gelöst] Neue Auswertung 'Beste Ringzahl'

Beitrag von chriseindt » Mi 9. Nov 2016, 11:16

Bei unseren Preisschießen verwenden wir eine Auswertung die bislang nicht vertreten ist.

* 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;
Bei einer anderen Auswertung wird diese 'Beste Ringzahl' abwechselnd mit dem Besten Teiler verwendet. Aber eins nach dem anderen.

[MEYTON] MM

Re: Neue Auswertung 'Beste Ringzahl'

Beitrag von [MEYTON] MM » Mi 9. Nov 2016, 11:39

Hallo chriseindt,

danke für deinen Vorschlag. Wir haben ihn an unsere Entwickler weitergeleitet.

Mit freundlichen Grüßen

Meyton Support

Antworten