WITH CTE AS
(
SELECT
ITM.CODE AS ITMCODE,
CASE
WHEN IOCODE IN (1,2) THEN AMOUNT
ELSE AMOUNT * -1
END AS AMOUNT
FROM
ITEMLINE ITL, ITEMS ITM
WHERE
ITL.ITEMREF = ITM.LOGICALREF
AND ITM.CODE = '123'
)
SELECT
ITMCODE, SUM(AMOUNT)
FROM
CTE
GROUP BY
ITMCODE
CTEから返される行は5行あり、金額はfloat
です。 Sum関数は2,27373675443232E-13を返します。 Amount * -1を使用しない場合は問題ありません。戻り値は正常です。この原因は何ですか?これはビューから返され、私はそれが禁止されているビューを変更することはできません、私は値を修正する必要があります。 5行が5,6,7,8,9であるという値。ありがとう。T-Sql合計正と負の浮動小数点値
[悪い習慣をキックする:使用して古いスタイルなJOIN](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick -using-old-style-joins.aspx) - 古いスタイル*カンマで区切られたテーブル*スタイルのリストが、*適切な* ANSI 'JOIN'構文に置き換えられました。 ANSI - ** 92 ** SQL標準(** 25年前**)とその使用はお勧めしません –