常に 0.00 になる次のコードがあります。weight_score が実際の数値であることは確かです。結果が10進数になるようにフォーマットするのを誰かが手伝ってくれますか? SQL Server 2008 を使用しており、このコードはビューにあります。どうもありがとう!
CAST(SUM(weight_score * (45/100)) as decimal(10,2)) As avg_score
常に 0.00 になる次のコードがあります。weight_score が実際の数値であることは確かです。結果が10進数になるようにフォーマットするのを誰かが手伝ってくれますか? SQL Server 2008 を使用しており、このコードはビューにあります。どうもありがとう!
CAST(SUM(weight_score * (45/100)) as decimal(10,2)) As avg_score
45/100 は暗黙的に INT を別の INT で割ったものとして扱われ、結果として INT は 0 に丸められます。これを回避するには、それぞれに 10 進数を追加します。
CAST(SUM(weight_score * (45.0/100.0)) as decimal(10,2)) As avg_score
エラーを回避したい場合は、NULLIF関数を使用できます。
45/100 is treated as INT.So change it to 45.0/100.0.
select CAST(SUM(weight_score * (45.0/100.0)) as decimal(10,2)) As avg_score
Even if you write the following code you will get 0
select (45/100)