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

标签 sql sql-server

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

当前出价 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/

相关文章:

sql-server - SQL Server 2008 占用大量内存?

sql-server - SSIS导入Excel数据

sql-server - 导入 Excel 数据似乎随机给出空值

sql - 如何编写 SSIS SQL 代理作业步骤脚本以在本地主机上运行?

c# - Windows 不变文化之谜

mysql - 选择不同数据的计数

mysql - SQL 查询从表中删除多个重复条目

sql - 在 Oracle 中执行动态 SQL 查询

sql - 使用 UNION 创建 VIEW 时插入一个 UNIQUE DUMMY COLUMN

mysql - 基于映射计算