-1

テーブルに数量列があり、値を合計しようとしています。フィールド タイプは varchar(20) です。以下の数量の合計は、正確に 0 になる必要があります。これは、負の小数と正の小数が混在しています。

展示物A(スクリーンショット)

以下の合計を実行すると、0 ではなく 1 トンの 10 進数が表示されます。これはデータ型の問題であると想定しています。これを回避する最善の方法は何ですか?

展示B(スクリーンショット)

4

1 に答える 1

2

数値データを文字列として格納するべきではありませんが、格納する場合は、集計をcast()適用する必要があります。SUM()

SELECT SUM(CAST(yourcolumn AS DECIMAL(10, 2))) 
FROM yourtable

したがって、クエリは次のようになります。

select sum(cast(qty as DECIMAL(10, 2)))
from inventory i
where i.refDocNum = 485
  and i.refApp = 'WO'
  and i.type in (20, 21)
于 2012-09-28T20:34:00.147 に答える