我的初始查询(从employee_id按tbl顺序选择*)返回以下内容:
employee_name Dept_Code Supervisor Date
John 99213 Mike 2013-01-10
John 99213 Dan 2013-12-13
John 99214 Kelly 2013-12-10
John 99215 Tammy 2013-09-09
Nancy 99244 Roy 2013-05-07
Nancy 99213 Cory 2013-04-05
Nancy 99214 Donald 2013-04-19
Nancy 99243 William 2013-07-01
Nancy 99244 Nick 2013-06-03
Rich 99203 Amber 2013-04-12
Dawn 99213 Nelson 2013-11-06
Rob 99213 Henrey 2013-08-01
Lewis 99213 Eric 2013-12-02
Alex 99203 Chris 2013-08-08
Alex 99243 Frank 2013-09-25
Bing 67228 Paula 2013-12-17
Bing 92225 Paula 2013-11-19
我只想使用max(Date)返回employee_name,Dept_Code和Supervisor。但是,当我运行以下。我的结果是一样的。
SELECT employee_namd ,
Dept_Code ,
Supervisor ,
MAX(Date) AS 'Date'
FROM tbl
GROUP BY employee_name ,
Dept_Code ,
Supervisor
ORDER BY employee_name
我只想看到:
employee_name Dept_Code Supervisor Date
John 99213 Dan 2013-12-13
Nancy 99243 William 2013-07-01
Rich 99203 Amber 2013-04-12
Dawn 99213 Nelson 2013-11-06
Rob 99213 Henrey 2013-08-01
Lewis 99213 Eric 2013-12-02
Alex 99243 Frank 2013-09-25
Bing 67228 Paula 2013-12-17
答案 0 :(得分:1)
;WITH Latest
AS
(
SELECT *,
RN = ROW_NUMBER() OVER (PARTITION BY employee_name ORDER BY [Date] DESC)
FROM TABLE_NAME
)
SELECT employee_name
,Dept_Code
,Supervisor
,[Date]
FROM Latest
WHERE RN = 1