Jeg vil foreslå at bruge aggregering:
SELECT `Reg.No`, SubjectCode, SUM(`Pass/Fail` = 'Pass')
FROM results
GROUP BY `Reg.No`, SubjectCode
HAVING SUM(`Pass/Fail` = 'Pass') = 0;
HAVING
klausul tæller antallet af resultater for hver elev og kursus, hvor den sidste kolonne er 'Pass'
. I MySQL behandles booleaner som heltal i en numerisk kontekst, hvor sand er 1. Så sum(
Bestået/Ikke bestået= 'Pass')
tæller antallet af gange, en elev har bestået kurset. = 0
siger, at eleven aldrig har bestået kurset.
Som et forslag, indsæt ikke specialtegn såsom /
og .
i kolonnenavne. Det kræver, at man undslipper kolonnerne og gør bare koden sværere at skrive, fordi den er fyldt med backticks.