首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求 SQL 语句,该如何解决

2013-11-11 
求 SQL 语句表内容如下NAMEIDBCDA-TIME11***2012/05/0412###2012/05/0313#*#2012/05/0224***2012/05/0425#

求 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

少打了个下划线

热点排行