读书人

求 SQL 语句,该如何解决

发布时间: 2013-11-11 14:02:17 作者: rapoo

求 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

少打了个下划线

读书人网 >SQL Server

热点推荐