【发布时间】:2012-08-06 14:41:37
【问题描述】:
我正在尝试像这样在 MySQL 中转换为 Decimal:
CAST((COUNT(*) * 1.5) AS DECIMAL(2))
我正在尝试将表中的行数(乘以 1.5)转换为点后两位数的浮点数。
SQL 代码:
SELECT CONCAT(Guardian.title, ' ',
Guardian.forename, ' ',
Guardian.surname) AS 'Guardian Name',
COUNT(*) AS 'Number of Activities',
(COUNT(*) * 1.5) AS 'Cost'
FROM Schedule
INNER JOIN Child ON Schedule.child_id = Child.id
INNER JOIN Guardian ON Child.guardian = Guardian.id
GROUP BY Guardian
ORDER BY Guardian.surname, Guardian.forename ASC
它会产生错误:
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'CAST((COUNT(*) * 1.5) AS DECIMAL(12,2))' at line 1.
再试一次,这个演员也不行:
SELECT CONCAT(Guardian.title, ' ',
Guardian.forename, ' ',
Guardian.surname) AS 'Guardian Name',
COUNT(*) AS 'Number of Activities',
CAST((COUNT(*) * 1.5) AS DECIMAL(8,2)) AS 'Cost'
FROM Schedule
INNER JOIN Child ON Schedule.child_id = Child.id
INNER JOIN Guardian ON Child.guardian = Guardian.id
GROUP BY Guardian
ORDER BY Guardian.surname, Guardian.forename ASC
如何使用mysql将整数转换为十进制?
【问题讨论】:
-
什么麻烦?您是否有显示问题的特定错误消息或结果?
-
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“CAST((COUNT(*) * 1.5) AS DECIMAL(12,2))”附近使用正确的语法。
-
我查看了文档,但不明白为什么我的代码不起作用:S
-
向我们展示整个代码,而不仅仅是一行。这个SQL-Fiddle 工作正常。
-
GROUP BY Guardian???Guardian是一张桌子,对吧?不应该是GROUP BY Guardian.id吗?