Guten Morgen an das Forum;
Ich habe in meiner Bogenturnier Auswertung (MariaDB) viele verschiedene Abfragemöglichkeiten, die aber von Turnier zu Turnier in unserem Verein unterschiedlich sein können.
Zum Beispiel bei der derzeitigen Bogenturnier Auswertung habe ich jetzt schon über 30 Abfragen, da es so viele Kombinationen aus Bogenklasse, Alter, Geschlecht usw gibt. Derweil hab ich nur 4 Bogenklassen, es gibt ja noch weit mehr.
Da steigt die Anzahl der Abfragen ins Uferlose.
Dank eurer Hilfe im Thread
viewtopic.php?f=8&t=68140 bin ich schon sehr weit punkto Komfort bei der Admin-Verwaltung der Turnierauswertung.
Hier ein Beispiel:
Code: Alles auswählen
SELECT (SELECT COUNT( `punkte` ) FROM `teilnehmer`
WHERE `punkte` > `a`.`punkte`
AND `alter` >= (SELECT `alter_min` FROM `altersklassen` WHERE `zeile` = 'Jugend')
AND `alter` <= (SELECT `alter_max` FROM `altersklassen` WHERE `zeile` = 'Jugend') ) + 1 AS `rang`,
`nachname`, `vorname`, `wohnort`, `geschlecht`, `alter`, `bogen`, `punkte`, `kills`, `verein` FROM `teilnehmer` AS `a`
WHERE `punkte`
AND `alter` >= (SELECT `alter_min` FROM `altersklassen` WHERE `zeile` = 'Jugend')
AND `alter` <= (SELECT `alter_max` FROM `altersklassen` WHERE `zeile` = 'Jugend')
ORDER BY `punkte` DESC, `kills` DESC"
In dieser Beispielsabfrage werden alle Jugendliche zwischen 11 und 15 Jahre nach Rang der erreichten Punkte (bei Punktegleichstand zusätzlich
noch nach erreichten Kills) ausgewertet.
Die Bogenklasse und Geschlecht ist in diesem Beispiel nicht berücksichtig, sonst wird mein Anliegen noch komplizierter zum formulieren.
Vermutlich kann diese Abfrage auch eleganter geschrieben werden, aber dafür reichen meine Kenntnisse einfach noch nicht aus.
Funktioniert alles tadellos - auch das Eintragen der Werte (hier 11 und 15) über ein Formular.
Ich habe in der Tabelle "altersklassen" die Spalten "zeile", "alter_min" und "alter_max" angelegt. Derzeit sind 4 Einträge enthalten:
1) Erwachsene in Spalte "zeile", 16 in Spalte "alter_min" und 99 in Spalte "alter_max";
2) Jugendlich in Spalte "zeile", 11 in Spalte "alter_min" und 15 in Spalte "alter_max";
3) Kinder in Spalte "zeile", 0 in Spalte "alter_min" und 10 in Spalte "alter_max";
4) Senioren in Spalte "zeile", 60 in Spalte "alter_min" und 99 in Spalte "alter_max";
Nur ist es meistens so, dass es bei nächsten Vereineturnier noch zuätzliche Altersklassen gibt, zum Beispiel "
Jugend_I" (Alter von 12-14) und "
Jugend_II" (Alter 15-16).
Ich kann diese zusätzlichen Altersklassen (übrigens das gleiche gilt auch für Bogenklassen) über ein Formular eintragen, editieren, ändern und löschen. Alles kein Problem und funktioniert auch tadellos.
Mein Problem ist, WIE schaffe ich es, dass in diesem Beispiel das
Jugend in dem Teil der Abfrage
"...WHERE `zeile` = 'Jugend')..." sich in
"
Jugend_II" ändert, wenn in der Tabelle
"altersklassen" der Eintrag
"
Jugend_II" in der Spalte
"
zeile" über das Formular angelegt wurde.
Pffff... ich hoffe, ich habe mich halbwegs verständlich ausgedrückt, ich weiß nicht, ob das überhaupt möglich ist.
Ein Such-Filterformular löst auch nicht das Problem der automatischen Änderung des Suchmodus (in meinem Beipsiel von "Jugend" auf "Jugend_II").
Das Gleiche wäre auch für zusätzliche Bogenklassen anzuwenden. Es gibt ja sehr viele Bogenklassen (die wiederum noch in Unterklassen unterteil werden).
Ihr seht, ich müsste da ein paar 100 Abfrage vorbereiten, um so sämtliche Kombinationen abzudecken.
Das muss doch einfacher zu machen sein, damit ich nicht bei jedem Vereinturnier die Abfragen händisch anpassen muss. Mir fehlt irgendwie der Grundgedanke dazu - einzige was mir einfällt - das mittels Checkboxen oder Auswahlmenü die Werte aus der Datenbank in einen Platzhalter der Anfrage zu schreiben, oder so ähnlich.
Beste Grüße,
Peter