SQL Server上で動作しているクエリがありますが、パラメータを変更するとエラーが発生します。WHEREパラメータを変更するとエラーが発生する
"intをデータ型数値に変換する算術オーバーフローエラー 警告:Null値は、集計または他のSET操作によって排除されます。
以下のクエリは、その日が-7の場合に機能します。これを-90に変更すると、エラーが表示されます。 誰でも私にこれを訂正するために何が必要なのかを教えてもらえますか?
SELECT
Category,
Count(Category) AS TotalTasks,
ISNULL(SUM(CASE WHEN impact > 0 then 1 end),0) AS TaskCompleted,
(SELECT ISNULL(CAST(SUM(CASE WHEN impact > 0 then 1 end)AS decimal(5,2))/CAST(Count(Category) AS decimal(5,2)),0)) AS Ratio
FROM AppTasks
WHERE TimeRaised > DATEADD(day, -7, GETDATE())
GROUP BY Category
おかげ代わりにISNULL
を使用しての
TimeRaisedの列はどのデータ型ですか?それは万一の文字列であり、あなたが持っているはずの価値がありますか?または、おそらく他の列の 'ISNULL(SUM(CASE'などの部分?それは私が掘り出し始めるだろう。単にSELECTカテゴリ、影響を与えるAppTaskどこからTimeRaised> DATEADD(日、-7、getdate )、 '-90'で置き換えてください。同じエラーが発生した場合は、TimeRaisedカラムに問題があります。それ以外の場合は、' Category'カラムや 'Impact'カラムに不正な値が入っています –
TimeRaisedはdatetime、ヌル。私は見て、TimeRaised列に無効なフィールドはありません。 – FuriousD
'CAST()を適用している' Category'または 'Impact'カラムの値を確認してください。 –