我需要一个查询来计算某些实体(学生)的集合(Student.absences)中的空值(Absence.excuse)。
到目前为止,我设法创建了这个查询:
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 吗?
谢谢你的帮助。