Sortierproblem bei Datenbankabfrage!

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

  • Sortierproblem bei Datenbankabfrage!

    Hallo alle zusammen und schon einmal vorab Danke für diejenigen die sich das durchlesen und versuchen es mit zu lösen.

    Also auf der Seite von meinem Junior gibt es Ergebnislisten!

    BSP: http://www.mx-jule.de/index.php?id=t...auf=2006-05-06

    dabei ist die Sortierung relativ einfach gelöst . Dazu verwende ich folgende Abfrage

    $sql_rang = "SELECT startnummer, gastfahrer, R1, quali_r1, pointR1, R2, quali_r2, pointR2, sum(pointR1) as r1,
    sum(pointR2) as r2,
    sum(pointR1+pointR2) as rangsum from race_daten
    where
    date = '".$_GET['lauf']."'
    and meisterschaft_id = '".$_GET['rang']."'
    Group BY startnummer order by rangsum DESC, r2 DESC";


    also das heist er addiert die Punkte für den 1 + 2 Lauf
    kommt ein Gleichstand heraus so sortiert er es nach dem 2. Lauf.

    Da liegt das Problem im obigen Link hat
    Platz 4 und Platz 5 17 Punkte
    Dabei hat Startnummer 6 im ersten Lauf Platz 5 belegt und 8 Punkte bekommen und im zweiten Lauf Platz 4 belegt und 9 Punkte bekommen, Startnummer 20 hatte das selbe nur logischerweise im ersten Lauf Platz 4 und im zweiten Lauf Platz 5

    Genau und nur in diesem Fall ist dann der zweite Lauf Entscheidend und Startnummer 4 belegt den besseren gesammt Tagesplatz.

    Aber wieder bei dem oben genannten Link
    Platz 9 und 10 hier liegt das Problem. Denn hier ist es so das zwar die Punkte gleich sind aber im ersten
    Lauf hat
    Startnummer 15 Platz 11 belegt und 5 Punkte bekommen
    Startnummer 7 Platz 7 belegt und 7 Punkte bekommen

    somit ist dann bei Punkte Gleichheit der 1. Lauf entscheidend.


    Nun die Frage wie kann man das abfragen und realisieren? So das er das entscheiden kann?

    Nochmals bei Punktegleichheit
    Fahrer 1 belegt 1x Platz 1 und 1x Platz 2
    Fahrer 2 selbiges jedoch umgekehrt dann entscheidet der 2. Lauf im anderen Fall der Punktegleichheit entscheidet jedoch die bessere Platzierung des 1. Laufes



    vielen Dank für die Hilfe

  • #2
    Hallo mxjule
    Uff, also wenn ich das richtig verstanden habe kann man diesen
    Spezialfall durch die höchste erreichte Punktzahl beider Runden erkennen.
    Die sind dann im Spezielfall "Punktevertauschen" gleich,
    sonst zwingend unterschiedlich (bei gleicher Summe).
    Wenn man danach sortiert, hat man die "normalen" Sortierungen schon mal von der Backe.
    Eine weitere Sortierung wirkt sich dann nur noch auf den Spezialfall aus.

    Hier noch mal:
    1. Sortiren nach Summe
    2. Die grösste Punktzahl von R1 und R2 (ermitteln mit IF... THEN... ELSE...)
    3. Sortieren nach Runde2

    PHP-Code:
    R1 R2    Summe   Max.    R2
    7  9     16      9       9
    9  7     16      9       7
    7  4.5   11.5    7       4.5
    5  6.5   11.5    6.5     6.5 

    P.S. Im Forum fehlt ein Biker-Smilie

    Kommentar


    • #3
      vielen Dank für diese Info aber genau so habe ich es gestern hinbekommen und es funktioniert!


      Derzeit sitze ich gerade an der Meisterschaftstabelle


      http://www.mx-jule.de/index.php?id=t...ar=2006&rang=1


      und hier entscheidet bei Punktegleichheit die "Majorität" (Wortlaut laut DMSB Handbuch) der besten Plätze


      Also oben genannte Tabelle muß Platz 4 auch wirklich Platz 4 sein! Nur habe ich da noch keine Lösung gefunden wenn es dann mehrere Läufe gegeben hat

      Kommentar

      Lädt...
      X