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

怎么在查询结果集中屏蔽相同的行

2012-02-19 
如何在查询结果集中屏蔽相同的行?问题是这样的我在数据库中有一个考勤表kqdata,如下:姓名部门代码时间张三

如何在查询结果集中屏蔽相同的行?
问题是这样的
我在数据库中有一个考勤表kqdata,如下:
姓名       部门代码             时间
张三       关务部               13:01
李四       关务部               13:12
王五       关务部               13:13
张三       关务部               13:12


我想得到的查询结果中只要一个张三的记录,如下:
张三       关务部               13:01
李四       关务部               13:12
王五       关务部               13:13

[解决办法]

create table kqdata(姓名 varchar(10),部门代码 varchar(20),时间 varchar(10))
insert kqdata select '张三 ', '关务部 ', '13:01 '
union all select '李四 ', '关务部 ', '13:12 '
union all select '王五 ', '关务部 ', '13:13 '
union all select '张三 ', '关务部 ', '13:12 '

select * from kqdata a where not exists
(
select 1 from kqdata where 姓名=a.姓名 and 时间 <a.时间
)

/*
姓名 部门代码 时间
---------- -------------------- ----------
张三 关务部 13:01
李四 关务部 13:12
王五 关务部 13:13

(所影响的行数为 3 行)
*/

热点排行