Auswertungen Zeitnahme
Hallo zusammen,
für eine Sportveranstaltung habe ich eine Zeitnahmesoftware. Diese Software besteht so und soll auch so bleiben. Ich möchte mir jetzt aber die Ergebnisse aus der MySQL Datenbank raushohlen und den Teilnehmern zur Verfügung stellen. Leider habe ich keine Idee, wie ich die Abfrage gestallten muss.
Der Aufbau sieht wie folgt aus:
tb_messpunkte:
tb_messungen:
So sieht es in der Datenbank (vereinfacht) aus.
Ich Frage mich jetzt, wie ich die Abfrage gestalten muss um eine Liste mit dem Aufbau:
Ich weiß aber nicht, wie viele Messpunkte es gibt. Die Anzahl der Spalten, sollte sich also nach dem Inhalt der tb_messpunkte richten.
Ich habe leider auch keine Idee, wie das heißt bzw wie ich das nennen soll. Sonst hätte ich versucht zu Googlen. Das was ich gefunden habe, war wenig hilfreich....
Danke für Eure Hilfe
(Ich habe leider nur ein begrenztes Wissen über SQL)
für eine Sportveranstaltung habe ich eine Zeitnahmesoftware. Diese Software besteht so und soll auch so bleiben. Ich möchte mir jetzt aber die Ergebnisse aus der MySQL Datenbank raushohlen und den Teilnehmern zur Verfügung stellen. Leider habe ich keine Idee, wie ich die Abfrage gestallten muss.
Der Aufbau sieht wie folgt aus:
tb_messpunkte:
tb_messungen:
So sieht es in der Datenbank (vereinfacht) aus.
Ich Frage mich jetzt, wie ich die Abfrage gestalten muss um eine Liste mit dem Aufbau:
Ich weiß aber nicht, wie viele Messpunkte es gibt. Die Anzahl der Spalten, sollte sich also nach dem Inhalt der tb_messpunkte richten.
Ich habe leider auch keine Idee, wie das heißt bzw wie ich das nennen soll. Sonst hätte ich versucht zu Googlen. Das was ich gefunden habe, war wenig hilfreich....
Danke für Eure Hilfe
(Ich habe leider nur ein begrenztes Wissen über SQL)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 333875
Url: https://administrator.de/contentid/333875
Ausgedruckt am: 26.11.2024 um 21:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo, hier wäre für uns hilfreich, wie deine Datenbank aufgebaut ist.
Das heißt, in welcher Beziehung stehen die Tabellen untereinander.
Grob gesagt, JOINS helfen dir dabei. Falls du dich soweit schon in SQL auskennst, bräuchte ich echt etwas genauere Infos zur Datenbankstruktur. Am besten ein ERM.
Ansonsten wäre das hier vielleicht hilfreich:
https://www.w3schools.com/sql/sql_join.asp
Eine sehr gute Seite um tiefer in SQL einzusteigen und es mit Praxisbeispielen bzw. eigener Testmöglichkeiten besser zu verstehen.
Das heißt, in welcher Beziehung stehen die Tabellen untereinander.
Grob gesagt, JOINS helfen dir dabei. Falls du dich soweit schon in SQL auskennst, bräuchte ich echt etwas genauere Infos zur Datenbankstruktur. Am besten ein ERM.
Ansonsten wäre das hier vielleicht hilfreich:
https://www.w3schools.com/sql/sql_join.asp
Eine sehr gute Seite um tiefer in SQL einzusteigen und es mit Praxisbeispielen bzw. eigener Testmöglichkeiten besser zu verstehen.
Wo ist denn die Eigenschaft "code" im ERM definiert.
Bzw. du möchtest jetzt einem bestimmten Teilnehmer die einzelnen Zeitwerte ausgeben, verstehe ich das richtig?
In der Art: Teilnehmer XY hat Schwimmzeit XY hat Laufzeit XY
Um JOINS zu nutzen, müsste man nun zwischen den Tabellen eine oder mehrere eindeutige IDs festlegen können.
Z.B Wert bei dem Wettkampf ID = teilnehmerID
Ansonsten wird es schwer, das gewünschte Ergebnis zu erzielen.
Deswegen ist es immer wichtig, das Datenbank-Design gut zu planen. Nachträglich was einzubauen, gestaltet sich da nicht mehr so einfach.
Bzw. du möchtest jetzt einem bestimmten Teilnehmer die einzelnen Zeitwerte ausgeben, verstehe ich das richtig?
In der Art: Teilnehmer XY hat Schwimmzeit XY hat Laufzeit XY
Um JOINS zu nutzen, müsste man nun zwischen den Tabellen eine oder mehrere eindeutige IDs festlegen können.
Z.B Wert bei dem Wettkampf ID = teilnehmerID
Ansonsten wird es schwer, das gewünschte Ergebnis zu erzielen.
Deswegen ist es immer wichtig, das Datenbank-Design gut zu planen. Nachträglich was einzubauen, gestaltet sich da nicht mehr so einfach.
Moin,
so wie es aussieht, musst du die Tabelle tb_messungen mehrfach joinen.
Folgendes ungetestet:
Durch das left join werden auch die Werte angezeigt, die in den Messpunkten 2 und/oder 3 noch keine Zeiten enthalten.
Allerdings wird dort dann NULL angezeigt, mit dem SQL-Statement CASE IF NULL kann man das abfangen
Nachtrag: Ich lese gerade, dass die Zahl der Messpunkte unbekannt/ variable ist. Vermutlich hilft dir dann dieser Link: http://stackoverflow.com/questions/26329159/convert-row-data-to-column- ...
Gruß
em-pie
so wie es aussieht, musst du die Tabelle tb_messungen mehrfach joinen.
Folgendes ungetestet:
select
a.code as "Code"
, a.zeit as "Schwimmen"
, b.zeit as "Laufen"
, c.zeit as "as Ziel"
from
tb_messungen as a
left join tb_messungen as b on a.code = b.code an b.messpunkt=2
left join tb_messungen as c on a.code = b.code an c.messpunkt=3
where
a.messpunkt=1
Durch das left join werden auch die Werte angezeigt, die in den Messpunkten 2 und/oder 3 noch keine Zeiten enthalten.
Allerdings wird dort dann NULL angezeigt, mit dem SQL-Statement CASE IF NULL kann man das abfangen
Nachtrag: Ich lese gerade, dass die Zahl der Messpunkte unbekannt/ variable ist. Vermutlich hilft dir dann dieser Link: http://stackoverflow.com/questions/26329159/convert-row-data-to-column- ...
Gruß
em-pie