NULLIF 関数を使用して NULL 値を返そうとしていますが、クエリの除数がゼロになるため、ゼロ除算エラーが返されます。ただし、関数をステートメントにラップするのに問題があります。ステートメントには、CAST、CASE、および SUM 関数が含まれています。以下の例では除数を関数で囲んでいますが、これは機能せず、他の組み合わせを試しました。
cast(
round(
cast(
sum(
case
when @StuYear=11 AND [Levels of Progress] < 3 then
1
when @StuYear=10 AND [Levels of Progress] < 2 then
1
when @StuYear=9 AND [Levels of Progress] < 1 then
1
else
0
end) as decimal)
/
NULLIF(
cast(
sum(
case
when [Levels of Progress] is NULL then
0
else
1
end) as decimal) * 100,1) as numeric(4,1))
,0)