SQL查询应该返回百分比但返回错误



我有以下代码行:

ROUND((((SUM(VALOR_2)) - SQLTMP.VALOR_1) / SQLTMP.VALOR_1) * 100, 2)

我希望它会返回一个百分比,但它返回一个错误,而不是…有什么问题吗?

根据您的输入,您可以尝试调整此解决方案:

CREATE TABLE #TMP (
val1 int,
val2 int
);
INSERT INTO #TMP
VALUES (1,2),(1,3),(1,4),(2,5),(2,6)
GO
-- Your code begins here
WITH tmp_table AS (
SELECT
val1 AS val1,
SUM(COLAESCE(val2, 0)) AS sum_val2
FROM #TMP
GROUP BY val1,val2
)
SELECT ROUND((sum_val2 - val1)/val1,2) FROM tmp_table;
-- Your code ends here
GO
DROP TABLE #TMP
select 
round(v1/(v2*1.0), 2) as pct 
from table

——乘以1.0将整型转换为小数,四舍五入限制为2位。

最新更新