0
我认为这个问题已经得到解答,但它不能满足我的问题。SQL选择最大列组一列的Columnid
我想通过我的表格中的最近日期值(MAX
)选择名称组的ID/s。我使用逐列组Name
和组列Date
,我必须得到ID
,Name
,Date
。
这里是我的表
ID Name Date
---------------------------------------
1 Brent 2012-02-17
2 Ash 2012-08-02
3 Brent 2012-08-15
4 Harold 2012-09-30
5 Margaret 2012-10-10
6 Ash 2012-12-01
7 Harold 2013-02-14
8 Ash 2012-01-01
9 Brent 2013-05-11
输出必须:
ID Name Date
---------------------------------------
5 Margaret 2012-10-10
6 Ash 2012-12-01
7 Harold 2013-02-14
9 Brent 2013-05-11
我尝试着这样一句话:
SELECT
[ID], [Name], MAX([Date]) as [Date]
FROM
[SampleTable]
GROUP BY
[Name]
但我得到这个错误:
Column 'ID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
如果我的身份证不是按顺序(1,2,3,4,...,n),该怎么办?这个问题还有意义吗? – Brent 2014-09-19 09:24:22
@Brent不要紧。 'ROW_NUMBER()'产生序列号。请参阅[排名函数](http://msdn.microsoft.com/zh-cn/library/ms189798.aspx) – 2014-09-19 09:25:40