テーブルに数量列があり、値を合計しようとしています。フィールド タイプは varchar(20) です。以下の数量の合計は、正確に 0 になる必要があります。これは、負の小数と正の小数が混在しています。
展示物A(スクリーンショット)
以下の合計を実行すると、0 ではなく 1 トンの 10 進数が表示されます。これはデータ型の問題であると想定しています。これを回避する最善の方法は何ですか?
展示B(スクリーンショット)
数値データを文字列として格納するべきではありませんが、格納する場合は、集計を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)