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

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

2012-01-23 
根据类别分组后找出时间最近的ID值IDSIDDTIME12NULL212007-10-1312007-7-1422007-9-10522007-2-1632007-10

根据类别分组后找出时间最近的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

热点排行