Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:显示的小数比要求的小数多_Sql_Select_Numbers_Decimal - Fatal编程技术网

SQL:显示的小数比要求的小数多

SQL:显示的小数比要求的小数多,sql,select,numbers,decimal,Sql,Select,Numbers,Decimal,这是我的代码 SELECT Concat(Round(SUM(Coalesce(Price.Morning, Price.Day, Price.Evening)*Tickets.count),2),' €') AS 'Total', Concat(Round(SUM(Price.Morning * Tickets.count) * 100 / (SUM(Coalesce(Price.Morning, Price.Day, Price.Evening)*Tickets.count)),2),'

这是我的代码

SELECT Concat(Round(SUM(Coalesce(Price.Morning, Price.Day, 
Price.Evening)*Tickets.count),2),' €') AS 'Total',
Concat(Round(SUM(Price.Morning * Tickets.count) * 100 / 
(SUM(Coalesce(Price.Morning, Price.Day, Price.Evening)*Tickets.count)),2),'%') 
AS 'Riti',
Concat(Round(SUM(Price.Day * Tickets.count) * 100 / 
(SUM(Coalesce(Price.Morning, Price.Day, Price.Evening)*Tickets.count)),2),'%') 
AS 'Dienas',
Concat(Round(SUM(Price.Evening * Tickets.count) * 100 / 
(SUM(Coalesce(Price.Morning, Price.Day, 
Price.Evening)*Tickets.count)),2),'%') 
AS 'Evening'
FROM Price,Tickets
WHERE Tickets.Price_ID = Price.Price_ID
;
它的显示方式如下:


一切正常,但逗号后我只需要2个小数,但它仍然显示2个以上。

不要在SQL中进行数字格式设置。让显示层(应用程序、报表、表单等)进行格式化。它限制了你适应不同文化、使用偏好等的能力

只需返回原始数据并删除格式:

SELECT
    SUM(Coalesce(Price.Morning, Price.Day, Price.Evening)*Tickets.count) AS 'Total',
    SUM(Price.Morning * Tickets.count) / 
        SUM(Coalesce(Price.Morning, Price.Day, Price.Evening)*Tickets.count) AS 'Riti',
    SUM(Price.Day * Tickets.count) / 
       SUM(Coalesce(Price.Morning, Price.Day, Price.Evening)*Tickets.count) AS 'Dienas',
    SUM(Price.Evening * Tickets.count) / 
       SUM(Coalesce(Price.Morning, Price.Day, Price.Evening)*Tickets.count AS 'Evening'
FROM Price,Tickets
WHERE Tickets.Price_ID = Price.Price_ID
您还可以通过将重复计算
合并(Price.Morning,Price.Day,Price.nighter)*Tickets.count
放入子查询中来简化此过程

round()
更改值。强制转换为
decimal()
,以更改类型。通常类型决定显示的内容。您使用的是哪种dbms?(该查询是特定于产品的。)