MySQL查询选择当前月错误

时间:2012-12-04 20:17:50

标签: mysql ms-access

我使用ms访问构建了以下查询。

SELECT GVA14.COD_VENDED, Count(GVA14.RAZON_SOCI) AS CountOfRAZON_SOCI
FROM GVA14
GROUP BY GVA14.COD_VENDED, Year([FECHA_ALTA]), Month([FECHA_ALTA])
HAVING (((Year([FECHA_ALTA]))=Year(curDate())) AND
        ((Month([FECHA_ALTA]))=Month(curDate())));

错误是

  

[Err] 1064 - 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'[FECHA_ALTA]附近使用正确的语法,月([FECHA_ALTA])

我将“date”更改为“curdate”以符合MySQL,但仍然出现错误。

3 个答案:

答案 0 :(得分:1)

[...]是sql-server / ms访问字段命名表示法,在MySQL中无效。试试Year(FECHA_ALTA)。如果[]字面上是字段名称的一部分,那么您将不得不反复使用它们:

Year(`[FECHA_ALTA]`)

答案 1 :(得分:0)

您的语法错误Year(curDate()))。请将此更改为Year(curDate())以解决此问题。

查询:

   SELECT GVA14.COD_VENDED, Count(GVA14.RAZON_SOCI) AS CountOfRAZON_SOCI
FROM GVA14
GROUP BY GVA14.COD_VENDED, Year([FECHA_ALTA]), Month([FECHA_ALTA])
HAVING (((Year([FECHA_ALTA]))=Year(curDate()) AND ((Month([FECHA_ALTA]))=Month(curDate())));

答案 2 :(得分:0)

修复了Leandro Barreto的查询

SELECT GVA14.COD_VENDED, GVA14.RAZON_SOCI, GVA14.FECHA_ALTA
FROM GVA14
WHERE Month(GVA14.FECHA_ALTA)=Month(curDate())
and Year(GVA14.FECHA_ALTA)=Year(curDate())
GROUP BY GVA14.COD_VENDED, GVA14.RAZON_SOCI, GVA14.FECHA_ALTA