Pat*_*921 2 sql t-sql sql-server
我目前正在编写一份小报告,我必须创建目标百分比的数字,但是我编写的查询似乎显示了错误的百分比计算,我不完全确定为什么。查询已删除所有敏感信息;
SELECT YearMonth
, Code
, COUNT(*) AS Total
, (COUNT(*) / 100 * 2) AS 'Q1 Target'
, (COUNT(*) / 100 * 3) AS 'Q2 Target'
, (COUNT(*) / 100 * 4) AS 'Q3 Target'
, (COUNT(*) / 100 * 5) AS 'Q4 Target'
FROM xxx
LEFT JOIN Calendar AS C ON Date = xxx
WHERE code IN (xxx)
and xxx BETWEEN '20220301' AND '20220331'
GROUP BY YearMonth, code
Run Code Online (Sandbox Code Playgroud)
返回的结果是;
正如您所看到的,第一行总共有 611 个,其中 2% 是 12 个,这是正确的。但是,如果您查看第 3 行,您可以看到总数为 659,其中 2% 应为 13,但显示为 12。同样的情况也适用于下一列,其中 659 的 3% 应为 19,但实际为显示为 18。仅需要整数,因此无需进行转换。
有什么原因可以解释为什么会发生这种情况吗?
仅需要整数,因此无需进行强制转换。
你确定吗?
659 / 100 整数除法的结果是 6 并丢弃余数。6*2=12。
将您的100
s 更改为100.0
s 以强制漂浮小数除法。之后您可能需要一些舍入/文本函数才能返回令人满意的两位数字。
归档时间: |
|
查看次数: |
192 次 |
最近记录: |