【发布时间】:2014-07-29 07:22:23
【问题描述】:
我一直在四处寻找,但我还没有找到解决方案,所以我想我会在这里问。 我有这个查询,它返回 1241 错误。我做错了什么?
SELECT
EMP_FORMAL,
employee.EMP_ID,
ROUND(ROUND(SUM(TIME_TO_SEC(TIMEDIFF(UREN_EIND,UREN_BEGIN))/3600),2)/(od_employee_extra.uren*0,4)*100, 2) AS SOM,
ROUND(SUM(TIME_TO_SEC(TIMEDIFF(UREN_EIND,UREN_BEGIN))/3600),2) AS UREN,
ROUND(SUM(TIME_TO_SEC(IF(IS_OPBON, TIMEDIFF(UREN_EIND,UREN_BEGIN), 0))/3600),2) AS FACTUUR_UREN,
od_employee_extra.uren*0,4 AS TOTAAL_UREN,
WEEK(UREN_DATUM,1) AS NUM
FROM
od_pc_common.urenreg
INNER JOIN
od_pc_common.employee ON (urenreg.EMP_ID = employee.EMP_ID)
INNER JOIN
od_common_settings.od_employee_extra ON (employee.EMP_ID = od_common_settings.od_employee_extra.EMP_ID AND employee.EMP_GROEP = od_employee_extra.EMP_GROUP)
WHERE
YEAR(UREN_DATUM) = 2014 AND
UREN_DATUM <= NOW() AND
employee.IS_ACTIVE = 1
GROUP BY
WEEK(UREN_DATUM, 1),
urenreg.EMP_ID
HAVING
NUM = 31;
ORDER BY
EMP_FORMAL ASC
提前致谢。 ;)
编辑:我刚刚弄清楚问题出在哪里。我们用逗号(“0,4”)标注浮点数,而 Sql 语法使用点(“0.4”)代替。
【问题讨论】:
-
你是否单独尝试了select语句,它是从表中检索数据。
-
如果你在 mysql 中单独使用 select 子句。是否正在检索数据。 SELECT EMP_FORMAL, employee.EMP_ID, ROUND(ROUND(SUM(TIME_TO_SEC(TIMEDIFF(UREN_EIND,UREN_BEGIN))/3600),2)/(od_employee_extra.uren*0,4)*100, 2) AS SOM, ROUND(SUM( TIME_TO_SEC(TIMEDIFF(UREN_EIND,UREN_BEGIN))/3600),2) 作为 UREN, ROUND(SUM(TIME_TO_SEC(IF(IS_OPBON, TIMEDIFF(UREN_EIND,UREN_BEGIN), 0))/3600),2) 作为 FACTUUR_UREN, od_employee_extra.uren *0,4 AS TOTAAL_UREN, WEEK(UREN_DATUM,1) AS NUM FROM od_pc_common.urenreg
-
那也行不通。
-
0,4是你的问题。小数在 SQL 中用点写成:0.4 -
分号是有意在 HAVING 中的吗? ;)
标签: mysql sql decimal-point mysql-error-1241