List the status change's rows

ExpandedBlockStart.gif 代码
declare   @t   table  (id  int , status  char ( 1 ), UpdateDate  datetime primary   key (id,updatedate))

insert   into   @t
select   1 , ' A ' , ' 2010-2-1 '   UNION   ALL
select   2 , ' B ' , ' 2010-2-3 '   UNION   ALL
select   1 , ' A ' , ' 2010-2-4 '   UNION   ALL
select   2 , ' C ' , ' 2010-2-5 '   UNION   ALL
select   1 , ' A ' , ' 2010-2-7 '   UNION   ALL
select   3 , ' B ' , ' 2010-2-8 '   UNION   ALL
select   1 , ' B ' , ' 2010-2-9 '   union   all
select   2 , ' B ' , ' 2010-2-10 '   union   all
select   3 , ' B ' , ' 2010-2-11 '  

SELECT   *   FROM   @T

SELECT  id,Status,updatedate
FROM   @T  a
where   exists  ( select   *    from   @t   where  a.id  =  id   and  a.status  <>  status  and   updatedate  =  ( select   max (updatedate)  from   @t   where  id  =  a.id  and  updatedate  <  a.updatedate))
or   exists  ( select   *    from   @t   where  a.id  =  id   and  a.status  <>  status  and  updatedate  =  ( select   min (updatedate)  from   @t   where  id  =  a.id  and  updatedate  >  a.updatedate))

 

转载于:https://www.cnblogs.com/vitamin/archive/2010/10/29/1864159.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值