日期:2014-05-17  浏览次数:20448 次

求 SQL 语句
表内容如下
NAME   ID       B         C        D           A-TIME
1          1          *          *          *          2012/05/04
1          2          #          #          #          2012/05/03
1          3          #          *          #          2012/05/02
2          4          *          *          *          2012/05/04
2          5          #          #          #          2012/05/03

如何将相同Name且A-Time最新的记录查询出来. (结果要ID为1,4的记录,且同时显示所有列)
请教SQL语句如何写.

------解决方案--------------------
引用:
相同NAME多个相同日期只显示一条的
SELECT *
FROM (
SELECT *,ROWNUMBER() OVER(PARTITION BY NAME ORDER BY [A-TIME] DESC) AS NUM FROM TB
) T WHERE NUM=1


相同NAME多个相同日期全显示的
SELECT *
FROM TB T1
WHERE NOT EXISTS(
SELECT 1 FROM TB T2 WHERE T2.NAME=T1.NAME AND T2.[A-TIME]>T1.[A-TIME]
)

第一个SQL里应该是
SELECT *
FROM (
SELECT *,ROW_NUMBER() OVER(PARTITION BY NAME ORDER BY [A-TIME] DESC) AS NUM FROM TB
) T WHERE NUM=1

少打了个下划线