DJB Prüfungsliste Judo mit JVerein und OpenOffice

Hier verraten JVerein-Benutzer ihre Tricks und Tips zur JVerein

Moderator: heiner

Antworten
RS111
Beiträge: 47
Registriert: Freitag 14. Januar 2011, 11:38

DJB Prüfungsliste Judo mit JVerein und OpenOffice

Beitrag von RS111 »

Hallo,

ich habe mir eine Lösung zusammengebastelt um leichter Prüfungslisten für Kyu. Prüfungen zu erstellen.

Für die Liste benötige ich: Namen, Vornamen, Geburtsdatum, Passnummer, den letzten Prüfungstermin, bzw. wann das Mitglied eingetreten ist und den aktuellen Gürtel.

Zuerst habe ich ein zuätzliches Textfeld "Passnummer" definiert in dem die Passnummer gespeichert wird.
Dann habe ich eine Lehrgangsart "Prüfung" angelegt.
Für jeden der eine Prüfung abgelegt hat wird ein Lehrgangsbesuch mit der Lehrgangsart Prüfung angelegt. In dem Vom Feld wird das Datum der Prüfung eingetragen.

Jetzt habe ich in OpenOffice Base eine Abfrage geschrieben. In Base habe ich natürlich vorher die H2 Datenbank von JVerein eingebunden.

Code: Alles auswählen

SELECT
	MITGLIED.Name,
	MITGLIED.Vorname,
	MITGLIED.Geburtsdatum,
	MITGLIED.Eintritt,
	MAX(LG.VON) AS "Letzte Prüfung",
	PASS.FELD
FROM MITGLIED
LEFT JOIN (SELECT LEHRGANG.VON, LEHRGANGSART.Bezeichnung, LEHRGANG.Mitglied FROM LEHRGANG INNER JOIN LEHRGANGSART ON LEHRGANG.Lehrgangsart = LEHRGANGSART.ID WHERE Bezeichnung = 'Prüfung') LG ON MITGLIED.ID = LG.Mitglied
INNER JOIN (SELECT MITGLIED.ID, ZUSATZFELDER.FELD FROM MITGLIED INNER JOIN ZUSATZFELDER ON MITGLIED.ID = ZUSATZFELDER.MITGLIED INNER JOIN FELDDEFINITION ON ZUSATZFELDER.FELDDEFINITION = FELDDEFINITION.ID WHERE FELDDEFINITION.Name = 'passnummer') PASS ON MITGLIED.ID = PASS.ID
AND (MITGLIED.Austritt is NULL or MITGLIED.Austritt > CURRENT_DATE())
GROUP BY MITGLIED.Name,
	MITGLIED.Vorname
Jetzt kann ich in Calc auf die relevanten Daten zugreifen und einfach die Vorlage der Prüfungsliste so umschreiben, dass die entsprechenden Felder der Abfrage an die richtige Stelle in der Prüfungsliste kopiert werden. Das einfügen der letzten Prüfung, bzw. wenn diese nicht vorhanden ist dem Eintrittstermin habe ich mit einer einfachen Wenn Formel gelöst.

Hier ist jetzt noch nicht der aktuelle Gürtel berücksichtigt. Ich vermute, dass ich dies über die Beschreibung beim Lehrgang mache. Sprich dort eintrage welchen Gürtel der Prüfling nach der Prüfung hat.

Da ich mit SQL eigentlich nichts am Hut habe, denke ich diese Abfrage kann bestimmt eleganter gemacht werden.

Zuerst einmal hatte ich Probleme die Zusatzfelder elegant auszulesen. Dies geschieht jetzt bei der Abfrage die als Alias PASS heißt.

Dann musste ich eine Verknüpfung des Lehrgangs mit der Lehrgangsart herstellen, da ich ja nur das Datum der Prüfungen haben will, andere Lehrgänge sollen hier nicht berücksichtigt werden. Dies geschieht bei der Abfrage die den Alias LG hat.

Vielleicht kann jemand was mit anfangen.
Antworten