SQLの特定の値を合計し、別の値の合計で除算すると、10進数値が得られます。これらの値を.5または.10に最も近い値にすることを望んでいましたが、クエリを実行すると商は0になります。値を2で乗算して2で割ります。SQLの小数点を丸めるための正しい構文は何ですか
ROUND((SUM(SALESTAX)/SUM(NULLIF(TOTALCOST, 0))*2),0)/2
RESULT
0.000000
単純に2で丸めると、丸められた値は得られますが、正しい値は得られません。
なぜ私のクエリがどのように書かれているかによって何かが増えていない限り、それが間違っているのか分かりません。
2番目の合計にnullがある場合、このクエリは失敗します。 'NULLIF'を変更して0ではなく1にします。 – sagi
SALESTAXとTOTALCOSTのデータ型は何ですか?私はあなたが[データ型の優先順位](https://msdn.microsoft.com/en-us/library/ms190309.aspx)の問題に遭遇している可能性があると思います。 – nscheaffer
同じ種類の変数で列を置き換え、その動作を再現するスクリプトを投稿できますか? –