0

いくつかのエンティティ (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 と評価しますか?

助けてくれてありがとう。

4

1 に答える 1

2

試してみてください

SELECT s, SUM(CASE WHEN (a.excuse IS NULL and a.id IS NOT NULL) THEN 1 ELSE 0 END)
于 2012-06-08T15:08:46.333 に答える