Jag skulle föreslå att du använder aggregering:
SELECT `Reg.No`, SubjectCode, SUM(`Pass/Fail` = 'Pass')
FROM results
GROUP BY `Reg.No`, SubjectCode
HAVING SUM(`Pass/Fail` = 'Pass') = 0;
HAVING
klausul räknar antalet resultat för varje student och kurs där den sista kolumnen är 'Pass'
. I MySQL behandlas booleaner som heltal i ett numeriskt sammanhang, där sant är 1. Så, sum(
Godkänd/Underkänd= 'Pass')
räknar antalet gånger en student klarat kursen. = 0
säger att studenten aldrig klarat kursen.
Som ett förslag, lägg inte in specialtecken som /
och .
i kolumnnamn. Det kräver att man undslipper kolumnerna och gör bara koden svårare att skriva eftersom den är fylld med backticks.