did*_*ido 0 sql sql-server casting sum sql-server-2008
我有以下代码总是导致0.00.我确定weight_score是一个实际数字.有人可以帮我格式化它,以便产生十进制数.使用SQL Server 2008,此代码位于视图中.非常感谢!
CAST(SUM(weight_score * (45/100)) as decimal(10,2)) As avg_score
Run Code Online (Sandbox Code Playgroud)
45/100被隐含地视为INT除以另一个INT,这导致INT被舍入为0.为每个INT添加一个小数来解决这个问题.
CAST(SUM(weight_score * (45.0/100.0)) as decimal(10,2)) As avg_score
Run Code Online (Sandbox Code Playgroud)