【发布时间】:2021-02-14 21:30:41
【问题描述】:
我想获取每个日期每辆车的第一个里程表值。 我试过这个来启动里程表,但出现错误:
SELECT TOP 1
CAST(DateTime AS DATE) AS Date, RegistrationNo, OdoMeter AS StartOdometer
FROM
EventsData
GROUP BY
RegistrationNo, CAST(DateTime AS DATE)
ORDER BY
RegistrationNo, DateTime
我收到此错误:
[SQL Server]列“EventsData.OdoMeter”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 (8120) (SQLExecDirectW)")
什么是正确的方法?请帮忙!
【问题讨论】:
-
请阅读how to create a minimal reproducible example 并添加一些示例数据、表结构和确切的错误消息,因为没人能猜到。
-
“但出现错误” - 什么错误?我在这个查询中看到了至少两个问题——一个是关键字作为标识符的广泛使用,另一个是
DateTime出现在order by子句中但没有出现在group by子句中(这可能是错误的原因)。 -
请阅读sql tag info 和edit 相应问题的指南。
标签: sql sql-server datetime greatest-n-per-group