请教一条sql查询语句,在线等,谢谢大家的帮忙

cyc123007512 2010-09-13 04:02:00
create table testSomething(
userid varchar(16),--人员编号
cardid int ,--出生证号码
isUsing int,--是否作废 1在使用,2已作废
timeChange datetime --作废时间
);

insert into testSomething(userid,cardid,isUsing) values('22',1111,1);
insert into testSomething(userid,cardid,isUsing,timeChange) values('22',2222,2,'2010-09-14 15:28:55.577');
insert into testSomething(userid,cardid,isUsing) values('33',3333,1);
insert into testSomething(userid,cardid,isUsing,timeChange) values('33',4444,2,'2010-09-16 15:28:55.577');
insert into testSomething(userid,cardid,isUsing,timeChange) values('33',5555,2,'2010-09-17 15:28:55.577');
insert into testSomething(userid,cardid,isUsing) values('44',6666,1);

--------查询结果,人员编号,出生证编号,变更前的出生证编号(最近作废的那个),没有变更的,显示空值
人员编号 出生证编号,变更前的出生证编号
22 1111 2222
33 3333 5555
44 6666
...全文
83 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyc123007512 2010-09-29
  • 打赏
  • 举报
回复
只有你回答,分数就给你了
wwwwb 2010-09-13
  • 打赏
  • 举报
回复
SELECT a.userid,a.cardid,b1.cardid FROM testSomething a
LEFT JOIN
(SELECT * FROM testSomething b WHERE b.timeChange IS NOT NULL AND NOT EXISTS(SELECT 1 FROM
testSomething WHERE b.userid=userid AND b.timeChange<timeChange))
b1
ON a.userid=b1.userid
WHERE a.timeChange IS NULL

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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