使用int列计算MS SQL Server中的百分比

时间:2014-05-01 20:40:51

标签: sql sql-server

我正在计算慈善机构的总金额。每行都有出价金额和慈善百分比。 字段的结构如下所示:

CurrentBid INT CharityPercentage INT< - 0-100,其中100捐赠给慈善机构

所以我试过这个:

SELECT CurrentBid, CharityPercentage, CurrentBid * (CharityPercentage / 100) AS TotalCharity FROM Items

然而它产生了这个:

50  100 50
70  100 70
25  50  0
50  25  0
30  10  0
55  15  0

只要百分比为100就可以正常工作。任何低于和低于0.我的猜测是它与int列有关。

关于如何解决它的任何想法?我也尝试在select语句中使用CAST转换int,但这不起作用。将INT列更改为其他内容是一个非常大的过程。

2 个答案:

答案 0 :(得分:6)

明确地将至少一个值设为小数:

CurrentBid * CharityPercentage / 100.0 AS TotalCharity

答案 1 :(得分:0)

不要CAST - 相反,只需乘以1.00。这隐含地进行了CASTing。

SELECT CurrentBid, CharityPercentage, (1.00 * CurrentBid * CharityPercentage) / 100 AS TotalCharity FROM Items