Maximale Differenz zwischen zwei Rows

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

  • Maximale Differenz zwischen zwei Rows

    Hallo Community

    Ich arbeite an einer Spiele-Webseite für unsere NHL-Turnier. So weit so gut. Turniere können erfasst und die entsprechenden Spielresultate dazu eingetragen werden.

    Nun würde ich jedoch gerne einige statistische Auswertungen für jeden einzelnen Spieler machen. Folgender Auszug aus der Tabelle dient als Beispiel:
    • spiel_id
    • spieler_1
    • spieler_2
    • tore_spieler_1
    • tore_spieler_2


    [FONT="Lucida Console"]
    1 | 17 | 10 | 3 | 1
    2 | 12 | 17 | 4 | 6
    3 | 11 | 13 | 3 | 2
    4 | 17 | 11 | 5 | 2
    5 | 10 | 14 | 5 | 1
    [/FONT]

    nun möchte ich also das spiel, wo der spieler mit der ID 17 das höchste Torverhältnis hat! Im obigen Beispiel wäre dies also nun die Zeile 4 welche zurückgeliefert werden müsste. Da die Tordifferenz +3 beträgt.

    Kurz gesagt:
    Ist es möglich die Differenz zweier Rows zu errechnen?
    Oder muss ich die ganze Tabelle auslesen und die Verarbeitung mittels PHP erledigen?

    Gruss & Danke für die Hilfe
    Marco

  • #2
    Zitat von schlattm Beitrag anzeigen
    Ist es möglich die Differenz zweier Rows zu errechnen?
    Von welcher Differenz redest du?

    Die Tordifferenz ergibt sich aus den Werten in zwei Spalten, nicht Zeilen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Meinst du sowas in der Art?

      Code:
      SELECT tore_spieler_1 - tore_spieler_2 as Differenz 
      WHERE spieler_1 = 17 OR spieler_2 = 17
      ORDER BY Differenz DESC
      LIMIT 1
      EDIT:
      Bitte beachte, dass diese Abfrage für dein Vorhaben noch nicht wie gewünscht funktionieren wird.
      Zuletzt geändert von Quetschi; 05.10.2010, 16:28.
      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
      Schön - etwas Geschichte kann ja nicht schaden.
      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

      Kommentar


      • #4
        @wahsaga:
        sorry, hab da etwas durcheinandergebracht!

        @Quetschi:
        Vielen Dank für deine Antwort. Ich werde das gleich mal ausprobieren!

        Kommentar


        • #5
          Sorry für den Doppelpost, aber ich habe keine Rechte Beiträge zu editieren!

          Ich habe das Statement nun noch entsprechend angepasst.

          Code:
          SELECT *  , max( `tore_spieler_1` - `tore_spieler_2` ) AS differenz
          FROM `spiele`
          WHERE `spieler_1` =17
          OR `spieler_2` =17
          somit erhalte ich nun die höchste Differenz zwischen den zwei Spalten.
          Nun habe ich jedoch noch das Problem, dass ich ja eigentlech das Query variabel aufbauen müsste.

          wenn `spieler_1` = 17
          Code:
           max( `tore_spieler_1` - `tore_spieler_2` )
          wenn `spieler_2` = 17
          Code:
           max( `tore_spieler_2` - `tore_spieler_1` )
          Ist sowas überhaupt in nur einem query möglich?
          Ich wüsste zwar wie ich es mit PHP lösen könnte, jedoch interessiert es mich ob es auch mit reinem SQL möglich ist!

          Danke & Gruss
          Marco

          Kommentar


          • #6
            Das hatte ich damit gemeint, dass die Abfrage so noch nicht funktionieren wird. Hier sollte dir weitergeholfen werden -> MySQL :: MySQL 5.1 Referenzhandbuch :: 12.2 Ablaufsteuerungsfunktionen
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              super, vielen Dank dafür.

              Mir fehlte der Anhaltspunkt. Ich wusste einfach nicht so recht nach was ich suchen musste!

              Werde mich in die Thematik einlesen! Vielen Dank

              Kommentar

              Lädt...
              X