1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

SQL Abfrage Problem

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von voodoo-magic, 8 November 2019.

  1. voodoo-magic

    voodoo-magic Benutzer

    Hallo zusammen,

    es ist eine MYSQL Datenbank mit Klausurergebnissen vorhanden. Die Ergebnisse von Teil 1 sind alle in einer Tabelle.

    Ich bin gerade dabei, eine Abfrage zu erstellen, die mir nur die Personen anzeigt welche Teil 1 nicht bestanden haben. (Note 5)

    Mein Problem, bei zwei Personen ist ein Eintrag besser als die Note 5 und die werden mir immer mit ausgegeben. Person 3, Person 4 sollen nicht auftauchen. (id_teil1 1800 und 1597)

    Master Tabelle
    Code:
    id_teil1   Nachname   Vorname   Matrikelnummer   Studiengang   Fach   Klausurtyp   Klausurdatum   Punkte   Note   Attest   Fehlversuch   Gesamtnotestatus   85_Prozent   Exmatrikulation
    1175   Person1   Person1   999991   1   Test   Klausur   TT.MM.YYYY   17   5   F   F   F   T   F
    1220   Person2   Person2   999992   1   Test   Klausur   TT.MM.YYYY   NULL   NULL   F   T   F   T   F
    1443   Person2   Person2   999992   1   Test   Nachklausur   TT.MM.YYYY   NULL   NULL   T   F   F   T   F
    1800   Person2   Person2   999992   1   Test   Nachklausur   TT.MM.YYYY   23   5   F   F   F   T   F
    1925   Person2   Person2   999992   1   Test   Klausur   TT.MM.YYYY   32   2   F   F   F   T   F
    1597   Person3   Person3   999993   1   Test   Klausur   TT.MM.YYYY   18   5   F   F   F   T   F
    1802   Person3   Person3   999993   1   Test   Nachklausur   TT.MM.YYYY   28   3   F   F   F   T   F
    2036   Person4   person4   999994   1   Test   Klausur   TT.MM.YYYY   23   5   F   F   F   T   F
    


    SQL
    Code:
    SELECT *
    FROM notenverwaltung.teil1
    WHERE Klausurdatum < CURDATE() and not Note < '5' and Gesamtnotestatus = 'F' and Exmatrikulation ='F'
    
    Abfrage Ergebniss
    Code:
    id_teil1 Nachname Vorname Matrikelnummer Studiengang Fach Klausurtyp Klausurdatum Punkte Note Attest Fehlversuch Gesamtnotestatus 85_Prozent Exmatrikulation
    1175 Person1 Person1 999991 1 Test Klausur TT.MM.YYYY 17 5 F F F T F
    1800 Person2 Person2 999992 1 Test Nachklausur TT.MM.YYYY 23 5 F F F T F
    1597 Person3 Person3 999993 1 Test Klausur TT.MM.YYYY 18 5 F F F T F
    2036 Person4 person4 999994 1 Test Klausur TT.MM.YYYY 23 5 F F F T F
    
    Wie muss ich nun die Abfrage umbauen?

    Danke, Gruß vm
     
  2. akretschmer

    akretschmer Datenbank-Guru

    • kapottes Tabellendesign, Stammdaten und Prüfungsdaten in einer Tabelle
    • Deine 'Person4' hat id_teil1 2036 und taucht auch nur einmal auf, warum soll die nicht im Result sein?
    • kaputte Datumsangaben "TT.MM.YYYY", damit geht kein Vergleich via currdate oder so
    • Datentyp für Note ist was?

    tl;dr

    Deine Frage ist mit Deinen Daten nicht nachvollziehbar. Zumindest nicht für mich.
     
  3. voodoo-magic

    voodoo-magic Benutzer

    Danke für Rückmeldung, Sorry Person2 und Person3 sollten in der Abfrage nicht mehr auftauchen.
    Klausurdatum hat diese Format YYYY-MM-TT hat sich beim Export in Excel auf diese TT.MM.YYYY geändert.
    Datentyp Note varchar(3)
     
  4. akretschmer

    akretschmer Datenbank-Guru

    ich denke mal, Du suchst vereinfacht dies:

    Code:
    test=*# select * from voodoo ;
     schueler | note
    ----------+------
            1 |    5
            2 |    5
            2 |    3
            3 |    2
            4 |    5
    (5 rows)
    
    test=*# select schueler, min(note) from voodoo group by schueler having min(note) = 5;
     schueler | min
    ----------+-----
            4 |   5
            1 |   5
    (2 rows)
    
    test=*#
    
     
  5. voodoo-magic

    voodoo-magic Benutzer

    ja, genau dieses Ergebniss sollte herauskommen.

    Wie könnte ein sinnvolles Tabellendesign aussehen, mit den Daten von oben?
    Soviel Daten sind bisher noch nicht vohanden Teil 1 hat 2164 Einträge.
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Stichwort: Normalisierung.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden