いくつかのエンティティ (Student) のコレクション (Student.absences) で (Absence.excuse の) null 値をカウントするクエリが必要です。
これまでのところ、このクエリを作成できました。
SELECT s, SUM(CASE WHEN a.excuse IS NULL THEN 1 ELSE 0 END)
FROM Student AS s
LEFT JOIN s.absences a
WHERE s.class = :class
GROUP BY s
ORDER BY s.ordinal
これは機能しますが、学生が欠席テーブルにすでにいくつかの欠席がある場合にのみ (理由の有無にかかわらず)。学生の欠席がまったくない場合、1 が返されます。しかし、それがどのように可能かはわかりません。欠席がない場合、a.excuse を NULL と評価しますか?
助けてくれてありがとう。