我想在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或其他字段?
最佳答案
我想你的意思是:
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');