私のアプリケーションではsql2000が使用され、使用するselect文が失敗することがあります。一週間かそこら選択戻るとSUM関数を使用した時折の変換エラー
SQLエラー
「数値へのデータ型varchar型の変換エラー」:
sum(case when ISNULL(form_prsn_id, -1) = irpd_prsn_id
then convert(dec(11,2), case when valu_value = ''
then '0'
else isnull
(valu_value,'0')
end)* case when
fmdt_deduction_flag = 'Y'
then -1
else 1
end
else 0
end) as client_sum
valu_valueフィールドには、いくつかの数値といくつかのvarchar型varchar型と店舗です。しかし、私の結合とWHERE句のフィルタを含む
それは常に数値または空の文字列を選択します。 それが失敗したとき、私はSUMを削除することができます、データを参照して、その数値を知っている。 なぜSUM関数は時には(例えば5%の時間)数値データで失敗するのでしょうか? SQLが何らかの形で "先を見越し"して、合計なしで返された行以上の10進数に変換できるかどうか疑問に思います。 私は含ま修正を発見したノート(ISNUMERIC(valu_value)= 1)
おかげ