SUM舍入小数点后两位

时间:2019-02-28 07:54:46

标签: sql sql-server tsql sum decimal

我有一个与其他表连接的表EMP。在查询中,我曾经这样获得SAL的总和。我希望此总和四舍五入到小数点后两位,但要给小数点后四位。在SAL表中将CHAR(9)声明为EMP

COALESCE(CAST(SUM(CAST(SAL AS INT))/12 AS DECIMAL(13,2)), 0) as "SUM-SAL"

输出显示为29364852.000000,但我希望将其四舍五入为小数点并以逗号分隔。

4 个答案:

答案 0 :(得分:0)

您可以使用format

尝试如下

示例

 DECLARE @test DECIMAL(18,6) = 123.456789
    SELECT FORMAT(@test, '##.##')

答案 1 :(得分:0)

我认为这就是您要寻找的东西。

DECLARE @test char(9) = '29364852.00'
SELECT Format(cast(@test as decimal(10, 2)), '##,##.#0') 

结果:29,364,852.00

答案 2 :(得分:0)

您可以尝试以下查询。

DECLARE @test DECIMAL(18,6) = 123.456789
Select cast(@test as decimal(10, 2))

DECLARE @test char(10) = '123.456789'
Select cast(@test as decimal(10, 2))

Live Demo

答案 3 :(得分:0)

这应该做到:

<a>

请注意,我将<span>更改为SELECT FORMAT(COALESCE(SUM(CAST(SAL AS DECIMAL(9, 0))) / 12, 0), 'N2') 。您必须更改CAST(... AS INT)以匹配char列中的大小和十进制数字。