Sql 四舍五入函数查询2到3个参数?

Sql 四舍五入函数查询2到3个参数?,sql,sql-server,sql-server-2016,Sql,Sql Server,Sql Server 2016,我试图在此查询中查找每个不同用户的收入,但似乎正在运行此错误 select concat('$',format(cast(round(sum(total)/count(distinct(customers))),2) as int),N'N','en-US') from table 我的错误: round函数需要2到3个参数 我猜你的意思是: SELECT CONCAT('$',FORMAT(CAST(ROUND(SUM(Total)/COUNT(DISTINCT customers),2

我试图在此查询中查找每个不同用户的收入,但似乎正在运行此错误

select concat('$',format(cast(round(sum(total)/count(distinct(customers))),2) 
as int),N'N','en-US') 
from table
我的错误:

round函数需要2到3个参数

我猜你的意思是:

SELECT CONCAT('$',FORMAT(CAST(ROUND(SUM(Total)/COUNT(DISTINCT customers),2) AS int),N'N'),'en-US') 
FROM [table];
但是,实际上,您需要担心表示层中值的格式(不需要有
格式
CONCAT

还有,为什么
ROUND({expr},2)
然后
CAST({expr}AS int)
?为什么不
ROUND({expr},0)

我想你的意思是:

SELECT CONCAT('$',FORMAT(CAST(ROUND(SUM(Total)/COUNT(DISTINCT customers),2) AS int),N'N'),'en-US') 
FROM [table];
但是,实际上,您需要担心表示层中值的格式(不需要有
格式
CONCAT


还有,为什么
ROUND({expr},2)
然后
CAST({expr}AS int)
?为什么不
舍入({expr},0)

例如,使用2作为舍入的长度

round(sum(total)/count(distinct(customers)),2)

例如,使用2作为圆的长度

round(sum(total)/count(distinct(customers)),2)

从表中选择concat(“$”,格式(cast(舍入(总和)/计数(不同的(客户)),2)作为int),N'N','en-US'),您需要添加您想要舍入的数量,例如,这里我使用了2
格式
可以自行舍入。例如
选择格式(2349345.439,'C','en-US'))
直接将值格式化为货币,并带有分隔符。
选择格式(2349345.439,'N2','en-US')
四舍五入为两位小数。
选择格式(2349345.439,'0.00','en-US')
给出的值不带数千个分隔符。如果您真的想截断数字(正如您的
转换所暗示的那样)然后,
ROUND
2位先取整是没有用的…@Jake Wagner-如果你需要取整的结果-小心点-
select格式(convert(int,ROUND(2.900,2)),'N2','en-US')
select格式(ROUND(2.900,0),'N2',en-US')
分别产生不同的结果-
2.00和
3.00
(“$”,格式(cast(round(sum(total)/count(distinct(customers)),2)as int,N'N',en-US')从表中您需要添加您想要舍入的数量,例如,这里我使用的2
format
可以自行舍入。例如
选择格式(2349345.439,'C','en-US'))
直接将值格式化为货币,并带有分隔符。
选择格式(2349345.439,'N2','en-US')
四舍五入为两位小数。
选择格式(2349345.439,'0.00','en-US')
给出的值不带数千个分隔符。如果您真的想截断数字(正如您的
转换所暗示的那样)然后,
先四舍五入
到两位数是没有用的…@Jake Wagner-如果你需要四舍五入的结果-要小心-
选择格式(转换(int,ROUND(2.900,2)),'N2','en-US')
选择格式(ROUND(2.900,0),'N2',en-US')
分别产生不同的结果-
2.00和
3.00