Seu esquema de banco de dados é mal projetado. Com um esquema normalizado corretamente, você obterá os resultados com uma consulta simples. Isso provavelmente provavelmente deve ter 4 tabelas separadas, mas deixe-me mostrar como fazer isso com duas e uma consulta SQL simples.
Uma tabela armazenará as pontuações e uma tabela conterá nossos valores.
ScoreValues
-----------
ID | Value
A+ | 4.3
A | 4.0
B | 3.0
C+ | 2.3
C | 2.0
D | 1.0
Scores
------
StudentID | Subject | Score
ANN | ENG | A+
ANN | LANGUAGE | A+
ANN | PHY | C
ANN | CHE | A+
ANN | BIO | A+
ANN | MATH | A+
JOHN | ENG | B+
JOHN | LANGUAGE | C
JOHN | PHY | A
JOHN | CHE | A+
JOHN | BIO | B
JOHN | MATH | C+
select Count(Subject) as AplusGradeCount, Student
from Scores,ScoreValues
where Scores.Score=ScoreValues.Value and
ScoreValues.Value > 4.0
Group By Student
QueryResults
------------
AplusGradeCount | Student
5 | ANN
1 | JOHN
De qualquer forma, sugiro que você dedique algum tempo a aprender sobre a normalização do banco de dados . Um banco de dados corretamente normalizado tornará muito mais fácil a consulta dos dados.