读书人

根据类别分组后找出时间最近的ID值解决

发布时间: 2012-01-23 21:57:28 作者: rapoo

根据类别分组后找出时间最近的ID值


ID SID DTIME
1 2 NULL
2 1 2007-10-1
3 1 2007-7-1
4 2 2007-9-10
5 2 2007-2-1
6 3 2007-10-1

就是这样一组数据
根据SID分组找出时间(如果时间为空,算最近)最近的ID值,按SID排序
要的结果如下:
ID SID DTIME
2 1 2007-10-1
1 2
6 3 2007-10-1

新人,大家给指点一下

[解决办法]
SELECT * FROM T1 A WHERE NOT EXISTS(SELECT 1 FROM T1 WHERE A.SID=SID AND ISNULL(A.DTIME, ' ')> DTIME )
ORDER BY SID

ID SID DTIME
------ ------ ----------
2 1 2007-10-1
1 2
6 3 2007-10-1

(所影响的行数为 3 行)
[解决办法]
兄弟,你的通不过,要去掉也只能这样:
select * from tb5 A where not exists(select 1 from tb5 B where A.SID=B.SID and A.DTIME <isnull(B.DTIME, '9999-12-31 ')) order by SID

读书人网 >SQL Server

热点推荐