sql - 如何在 SQL Server Management Studio 18 中获取两个表的 SQL 中的 2 个小数百分比
问题描述
我正在尝试获取所有站点的百分比...我尝试了 UCSF_P 但它是错误的
SELECT A.Year
,A.Month
,(sum(A.BCHO) * 100 / NULLIF((sum(B.BCHO)), 0)) AS BCHO
,
--SELECT FORMAT((37.0/38.0),'P3') as [ThreeDecimalsPercentage]
FORMAT((sum(A.UCSF)) * 100 / (sum(B.UCSF)), 'P2') AS UCSF_P
,-------------------This is wrong
(sum(A.UCSF) * 100 / (sum(B.UCSF))) AS UCSF
,(sum(A.UCLA) * 100 / (sum(B.UCLA))) AS UCLA
,(sum(A.UCD) * 100 / (sum(B.UCD))) AS UCD
,(sum(A.UCI) * 100 / (sum(B.UCI))) AS UCI
,(sum(A.UCSD) * 100 / (sum(B.UCSD))) AS UCSD
FROM Denials_Scrub_Final_V A
INNER JOIN Claims_Final_V B ON B.Year = A.Year
AND A.Month = B.Month
GROUP BY A.Year
,A.Month
,A.UCSF
,B.UCSF
ORDER BY A.Year
,A.Month
解决方案
SQL Server 进行整数除法。要获得小数位,请使用100.0
而不是100
:
sum(A.UCSF) * 100.0 / sum(B.UCSF)
如果您特别希望结果中有 2 位数字,请使用round()
或转换为 a decimal
,例如decimal(5, 2)
或使用format()
。
推荐阅读
- algorithm - 有向图中的欧拉电路
- python - How To Clear a Label Assigned to a Grid in Specific Scenario Tkinter
- websphere - 在 WAS 中创建集群服务器
- bash - 在bash中使用while循环匹配行的问题
- firebase - PlatformException(ERROR_INVALID_EMAIL,电子邮件地址格式错误。,null)
- pine-script - 我只能在我的编码脚本中添加最多 5 个脚本
- node.js - 无法从 Broker 中的 MQTT 消息解析 JSON
- javascript - 如何在html表格中检测元素并分组
- javascript - 如何获取在 Javascript 中拆分我的字符串的分隔符?
- c# - 如何修改 ASP.NET Core 中的默认 Authorize 属性?