我使用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,但仍然出现错误。
答案 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