第二次开贴求助
表:mess 
 字段有: 
 lb      userid         sx            bz 
 1         1                        1               1 
 1         2                        2               0 
 1         3                        3               0 
 2         1                        1               0 
 2         3                        2               0 
 3         2                        1               1 
 3         1                        2               0   
 我现在想从这些数据里面得到的结果是:userid=2的bz=0的并且sx字段中大于userid=2的sx的值的bz=1才行,也许我说的不够明白,是这样的,这个是用于审批流程的,我想找出某个人需要审批的事项ID来,但这个审批是有先后顺序的,如果这个人前面的人还没有审批,那么这个人就看不到这个事项。字段bz就是用来标志是否审批过该事项   
 第一次开贴没有人回答 
 http://community.csdn.net/Expert/topic/5389/5389002.xml?temp=1.424807E-02
------解决方案--------------------看的有点晕
------解决方案--------------------1、创建临时表 
 create table #T (lb varchar(8),userid varchar(8),sx int,bz int)   
 2、输入数据 
 insert into #t(lb,userid,sx,bz) 
 select 1,1,1,1 union 
 select 1,2,2,0 union 
 select 1,3,3,0 union 
 select 2,1,1,0 union 
 select 2,3,2,0 union 
 select 3,2,1,1 union 
 select 3,1,2,0 union 
 select 4,2,1,0 union 
 select 4,1,2,0 union 
 select 4,3,3,0    
 3、UserID=2 有参考加的事项有 
 select * from #T where userid=2   
 lb       userid   sx          bz           
 -------- -------- ----------- -----------  
 1        2        2           0 
 3        2        1           1 
 4        2        1           0   
 从结果中可以看到事项3用户已经办理,未办理的有1和4 ,并且不知道事项1和4是否上级已经办理,这并不是我们所要的结果   
 4、UserID=2 到办未办的事项可通过以下查询得到结果   
 select T1.* 
  from #T T1 
  left join #T T2 on T1.lb=T2.lb and T2.sx=T1.sx-1  
 where T1.userid=2 and T1.bz=0 and (t2.bz=1 or t2.bz is null)   
 lb       userid   sx          bz           
 -------- -------- ----------- -----------  
 1        2        2           0 
 4        2        1           0     
------解决方案--------------------给的分太少了,没吸引里啊 
------解决方案--------------------userid=2的bz=0的并且sx字段中大于userid=2的sx的值的bz=1才行 
 这句直接把我搞傻了