SQL Abfrage Problem

voodoo-magic

Benutzer
Beiträge
6
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
 
Werbung:
  • 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.
 
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)
 
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=*#
 
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.
 
Werbung:
Zurück
Oben