0

このクエリを使用して、現在の学期から最後の学期までの登録合計の変化率を計算しています。nullを回避するには、このクエリにどのような変更を加える必要がありますか?非常に遅いサブクエリを使用してみました。

SELECT E2.Term AS Prev_Term, 
       E2.[Enrollment Total] AS Prev_Enrl_Tot, 
       E1.Term,
       E1.Location, 
       E1.milestone_description, 
       E1.polling_date,
       Round(((E1.[Enrollment Total] - [Prev_Enrl_Tot]) 
                                   / [Prev_Enrl_Tot]) * 100,2) AS Percent_Change
FROM EnrollmentsByLocation E1 
LEFT OUTER JOIN EnrollmentsByLocation E2
ON E1.Location = E2.Location 
AND E1.milestone_description = E2.milestone_description 
AND E1.Term - E2.Term = 1;
4

1 に答える 1

1

SQLのフレーバーは何ですか?nullを避けるとはどういう意味ですか?ゼロ除算エラーを回避しようとしていますか、それともnullを表示しませんか?を使用しますが、ゼロ除算エラーを回避するために除数をISNULLラップアラウンドします。NULLIFこれは両方を処理します。それとも、彼らが戻ってくるのを排除しようとしていますか?もしそうなら、あなたのLEFT結合またはWHERE節を見てください。[Prev_Enrl_Tot]にエイリアスを配置する必要があります。

 ISNULL(Round(((E1.[Enrollment Total] - [Prev_Enrl_Tot]) / NULLIF([Prev_Enrl_Tot],0)) * 100,2),0) AS Percent_Change
于 2012-07-06T18:30:26.930 に答える