可能的重复:
这个 SQL Server 查询除法计算有什么问题?
我在 SQL 中除以两个值
SELECT SUM(totalCalls),
SUM(EnteredBTN),
SUM(EnteredBTN) * 100 / SUM(totalCalls),
SUM(EnteredACC),
SUM(EnteredACC) / SUM(totalCalls),
SUM(SentToTrans),
SUM(SentToTrans) * 100 / SUM(totalCalls),
SUM(Complete_Information),
SUM(Complete_Information) * 100 / SUM(SentToTrans)
Run Code Online (Sandbox Code Playgroud)
现在,当我执行SUM(EnteredACC)/SUM(totalCalls)ie 7/48时,它应该给我0.14,但它却给我0。
当我SUM(EnteredACC)*100/SUM(totalCalls)这样做时,应该给出14.58(四舍五入后为15 ),但结果却给出14 。有人可以帮忙吗?
答案很简单,列的数据类型很可能EnteredACC是totalCalls(INT或SMALLINT,BIGINT等),因此您的结果是一个INT。因此,14.58 变为 14,0.14 变为 0。您需要对数据类型进行强制转换(隐式或显式):
SUM(CAST(EnteredACC AS DECIMAL(16,4))/SUM(totalCalls)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9363 次 |
| 最近记录: |