1. Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!
    Information ausblenden

Frage Zweistellige Werte bei Größer/Kleinervergleich fehlerhaft

Dieses Thema im Forum "Datenbanken - z.B. MySQL" wurde erstellt von StephanBo, 18 Mai 2017.

  1. StephanBo

    StephanBo Mitglied

    Registriert seit:
    28 Januar 2012
    Beiträge:
    153
    Punkte für Erfolge:
    16
    Ein sehr seltsames Problem macht sich gerade bemerkbar.

    Es geht um eine Tabellenberechnung beim Fußball. Eine Mannschaft mit mehr Toren als die Gegnermannschaft soll 3 Punkte erhalten. Der Codeschnipsel hierzu ist leicht: "... WHEN ScoreSelf > ScoreOther THEN 3 ..." und alles klappte wunderbar.

    Jetzt gibt es jedoch ein Spiel mit einem 10:2 Ergebnis und sonderbarerweise erhält nicht die Heimmannschaft die 3 Punkte, sondern die Auswärtsmannschaft. Wenn ich das Ergebnis auf 9:2 ändere klappt aber wieder alles normal. Es muss also an der zweistelligen Zahl liegen (die auch korrekt in der DB als zweistellige Zahl gespeichert wird).

    Aber warum tut sich hier ein Problem auf? Ich habe schon versucht den Datentyp umzustellen (Text, Varchar und Tinyint probiert) aber bei allen dreien das selbe Problem. Ich habe absolut keine logische Erklärung hierfür, warum die SQL-Berechnung Probleme mit zweistelligen Zahlen zu haben scheint und aus einem 10 > 2 ein 10 < 2 macht. Meine Vermutung ist, dass die 10 nicht als 10 erkannt wird, sondern als 1 oder 0. Aber das macht immer noch keinen Sinn.
     
    Werbung:

    Jetzt registrieren, damit diese Werbung verschwindet
  2. m.scatello

    m.scatello Mitglied

    Registriert seit:
    15 Februar 2017
    Beiträge:
    30
    Punkte für Erfolge:
    8
    Du hast ein Zahl und speicherst sie aber als Text ab, alleine daran sollte dir etwas auffallen.
     
  3. StephanBo

    StephanBo Mitglied

    Registriert seit:
    28 Januar 2012
    Beiträge:
    153
    Punkte für Erfolge:
    16
    Habe doch geschrieben, dass ich es nur testhalber geändert habe, um es mit andere Datentypen zu vergleichen.

    Ein 10:0 oder ein 10:1 erkennt die Berechnung übrigens als richtig. Nur ein 10:2 nicht.
     
  4. m.scatello

    m.scatello Mitglied

    Registriert seit:
    15 Februar 2017
    Beiträge:
    30
    Punkte für Erfolge:
    8
    Poste doch mal die Tabellenstruktur, idealerweise auch ein paar Daten und dein Script