我想在ms-sql服务器上执行一个简单的查询,该查询在mysql中工作正常,但在Microsoft的东西上似乎是不可能的。
工作正常:
SELECT COUNT(event_date) AS Amount, event_date, DATE_FORMAT(event_date,'%y-%m-%d') AS Timestep
FROM JRLOG
GROUP BY Timestep;
仅当我从查询中删除event_date字段时有效
SELECT COUNT(event_date) AS Amount, event_date, FORMAT(event_date,'yyyy-MM-dd') AS Timestep
FROM [JRLOG]
GROUP BY FORMAT(event_date,'yyyy-MM-dd');
为什么我不能在MSSQL的GROUP部分中使用虚拟的Timestep字段?
我收到MSSQL错误:
event_date列在选择列表中无效,因为它不包含在聚合函数中,也不在GROUP BY子句中
是否可以在SELECT查询中带上event_date或其他字段?
答案 0 :(得分:0)
我想你是说:
SELECT COUNT(event_date) AS Amount, event_date, FORMAT(event_date,'yyyy-MM-dd') AS Timestep
FROM [JRLOG]
GROUP BY event_date,FORMAT(event_date,'yyyy-MM-dd');
或
SELECT COUNT(event_date) AS Amount, MIN(event_date), FORMAT(event_date,'yyyy-MM-dd') AS Timestep
FROM [JRLOG]
GROUP BY FORMAT(event_date,'yyyy-MM-dd');