【发布时间】:2014-01-31 21:26:55
【问题描述】:
我正在使用SQL Server 2008 R2。我有一个如下的数据库表:
+--+-----+---+---------+--------+----------+-----------------------+
|Id|Total|New|Completed|Assigned|Unassigned|CreatedDtUTC |
+--+-----+---+---------+--------+----------+-----------------------+
|1 |29 |1 |5 |6 |5 |2014-01-07 06:00:00.000|
+--+-----+---+---------+--------+----------+-----------------------+
|2 |29 |1 |5 |6 |5 |2014-01-07 06:00:00.000|
+--+-----+---+---------+--------+----------+-----------------------+
|3 |29 |1 |5 |6 |5 |2014-01-07 06:00:00.000|
+--+-----+---+---------+--------+----------+-----------------------+
|4 |30 |1 |3 |2 |3 |2014-01-08 06:00:00.000|
+--+-----+---+---------+--------+----------+-----------------------+
|5 |30 |0 |3 |4 |3 |2014-01-09 06:00:00.000|
+--+-----+---+---------+--------+----------+-----------------------+
|6 |30 |0 |0 |0 |0 |2014-01-10 06:00:00.000|
+--+-----+---+---------+--------+----------+-----------------------+
|7 |30 |0 |0 |0 |0 |2014-01-11 06:00:00.000|
+--+-----+---+---------+--------+----------+-----------------------+
现在,grouping CreatedDtUTC 列的记录时,我遇到了一个奇怪的问题。
我想要这张表中的distinct records。在这里您可以观察到前三个记录是在同一日期时间创建的重复。我想要不同的记录,所以我运行了下面给出的查询:
SELECT Id, Total, New, Completed, Assigned, Unassigned, MAX(CreatedDtUTC)
FROM TblUsage
GROUP BY CreatedDtUTC
但它给了我错误:
选择列表中的“TblUsage.Id”列无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
我也为 CreatedDtUTC 列尝试了 DISTINCT,但给出了同样的错误。谁能让我知道如何摆脱这个?
附:我想要CONVERT(VARCHAR(10), CreatedDtUTC,101) 格式的CreatedDtUTC coumn。
【问题讨论】:
标签: sql sql-server date select group-by