碰到sql难题了,高手进

kaowa 2006-11-25 07:08:40
sql server 2000 中 有这么一个表 sc_abc

表中有数千条记录,其中有字段 person ,ftime ,还有其他等等

其中person 表示操作人,ftime表示操作时间.同一个操作人可能在不同的操作时间有很多条记录

大致表结构如下:

id person ftime content remark ……

1 张三 2006-01-01 03:02:01 操作 正常 ……
2 李四 2006-02-01 03:02:02 核实 正常 ……
3 王五 2006-03-01 03:02:03 修改 error ……
4 王五 2006-01-01 03:02:04 删除 正常 ……
5 李四 2006-02-01 02:02:00 插入 正常 ……
6 张三 2006-03-01 03:02:06 关机 错误 ……

…… ……


现要求按照操作人分类,每个操作人最近的操作时间的一条记录给查询出来,

内容如下:

id person ftime content remark ……

1 张三 2006-01-01 03:02:01 操作 正常
5 李四 2006-02-01 02:02:00 插入 正常
4 王五 2006-01-01 03:02:04 删除 正常


小弟才疏学浅,希望各位大虾踊跃参与,……

万分感谢!!


...全文
156 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackeyabc 2006-11-25
  • 打赏
  • 举报
回复
declare @t table(id int, person varchar(10), ftime datetime,content varchar(6),remark varchar(10))
insert @t select 1,'张三','2006-01-01 03:02:01','操作','正常'
insert @t select 2, '李四','2006-02-01 03:02:02','核实','正常'
insert @t select 3 , '王五', '2006-03-01 03:02:03' , '修改' ,'error'
insert @t select 4, '王五', '2006-01-01 03:02:04', '删除 ' , '正常'
insert @t select 5 , '李四', '2006-02-01 02:02:00','插入' , '正常'
insert @t select 6 , '张三', ' 2006-03-01 03:02:06 ', '关机' , '错误'

select a.* from @t a where not exists(select * from @t b where b.person=a.person and b.ftime<a.ftime)

-------------------------------------------
1 张三 2006-01-01 03:02:01.000 操作 正常
4 王五 2006-01-01 03:02:04.000 删除 正常
5 李四 2006-02-01 02:02:00.000 插入 正常
kaowa 2006-11-25
  • 打赏
  • 举报
回复
谢谢楼上兄弟的热心帮助,OK了!!
studenthj 2006-11-25
  • 打赏
  • 举报
回复
select * from table
where ftime in (select min(ftime) from table group by person)
studenthj 2006-11-25
  • 打赏
  • 举报
回复
SELECT id,person,min(ftime),content,remark
from sc_abc
group by preson
lxzm1001 2006-11-25
  • 打赏
  • 举报
回复
select * from tablename where id in(select min(id) from tablename group by person)
lxzm1001 2006-11-25
  • 打赏
  • 举报
回复
呵呵

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧