Ankündigung

Einklappen
Keine Ankündigung bisher.

Auswertungen Zeitnahme

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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:
    ID Bezeichnung Prio
    1 Schwimmen 3
    2 Laufen 2
    3 Ziel 1






    tb_messungen:
    ID Messpunk code Zeit
    1 1 521 11:25:00
    2 1 522 11:30:00
    3 2 521 11:45:00
    4 2 522 11:50:00
    5 3 521 12:30:00
    6 3 522 12:45:00
    So sieht es in der Datenbank (vereinfacht) aus.

    Ich Frage mich jetzt, wie ich die Abfrage gestalten muss um eine Liste mit dem Aufbau:
    code Schwimmen Laufen Ziel
    521 11:25:00 11:45:00 12:30:00
    522 11:30:00 11:50:00 12:45:00
    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)

  • #2
    Wenn die Spalten aus den Zeilen einer Tabelle gebaut werden sollen, braucht man Pivotfunktionen. Die gibt es unter mysql nicht.
    Also hast Du folgende Optionen:
    - Daten in anderer DB verarbeiten
    - Spalten festlegen, die Du bearbeiten wilst (per SQL fest definiert), also mit einer festen Teilmenge arbeiten
    - sql Statement in PHP dynamisch zusammenbauen
    - sql so gestalten, dass nur eine Liste mit den Spalten CODE, Messpunktbezeichnung und Wert ausgespuckt wird und die Pivotisierung komplett in PHP machen

    Die mittlere Option ist nicht ungewöhnlich, da am Ende auch viele Systeme mit der Weiterverarbeitung dynamischer Inhalte problematisch sind.

    Also mal ein bisschen überlegen, wo die Reise hingehen soll und hier posten.

    Kommentar


    • #3
      Pivotabfrage mit Mysql:
      PHP-Code:
      SELECT
          tb_messungen
      .code,
          
      MAX(IF(tb_messungen.Messpunkt 1tb_messungen.tb_zeitNULL)) AS Schwimmen
          MAX
      (IF(tb_messungen.Messpunkt 2tb_messungen.tb_zeitNULL)) AS Laufen
          MAX
      (IF(tb_messungen.Messpunkt 3tb_messungen.tb_zeitNULL)) AS Ziel
      FROM
          tb_messungen
      GROUP BY
          tb_messungen
      .code 

      Kommentar

      Lädt...
      X