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?(该查询是特定于产品的。)