Ich denke, Sie wollen nur bedingte Aggregation, keine Unterabfragen:
select Max(Counting) as Total, student, stdType,
sum(case when score = '3' then 1 else 0 end) as Score3,
sum(case when score = '4' then 1 else 0 end) as Score4
from #tempBWMSHonors3
group by student, stdType;
Hinweis:Wenn es sich bei der Punktzahl um eine Zahl und nicht um eine Zeichenfolge handelt, sollten Sie keine einfachen Anführungszeichen für die Konstante verwenden.