首页 > 解决方案 > 如何在 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

标签: sqlsql-serverpercentage

解决方案


SQL Server 进行整数除法。要获得小数位,请使用100.0而不是100

sum(A.UCSF) * 100.0 / sum(B.UCSF)

如果您特别希望结果中有 2 位数字,请使用round()或转换为 a decimal,例如decimal(5, 2)或使用format()


推荐阅读