我正在尝试计算慈善事业的总额。每行都有一个出价金额和慈善百分比。 字段的结构如下所示:
当前出价 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 列更改为其他内容是一个非常大的过程。
最佳答案
明确地将至少一个值设置为小数/浮点/等。就您而言,您已经有一个文字数值 100
;因此,只需将其更改为 100.0
:
CurrentBid * CharityPercentage / <b>100.0</b> AS TotalCharity
关于sql - 使用 int 列计算 MS SQL Server 中的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23416227/