--生成测试数据
create table #A(ID,type varchar(4),SHMan varchar(50),GZLID int)insert into #A(ID,type,SHMan,GZLID)
select 1,'B','张三',1
union 
select 2,'B','张三',2
union 
select 3,'A','李四',0
union 
select 4,'C','李四',0
union 
select 5,'A','李四',0
union 
select 6,'B','王五',1
union 
select 7,'B','测试',1
union 
select 8,'B','测试',2create table #B(ID,BillType varchar(4),USR varchar(50),USRSH varchar(500),GZLID int)insert into #A(ID,type,SHMan,GZLID)
select 1,'B','AS','测试',1
union 
select 2,'B','AS','王五,张三,六六',1
union 
select 3,'B','AS','管理员',1
Union
select 1,'B','AS','王五,张三,六六',2
union 
select 2,'B','AS','管理员',2-- 最终结果是要查询出A表中的,1,2,6条数据A表为单据表
B表为审核流程表
要根据单据类别取出A表中已经通过倒数第二步审核的单据
审核流程步骤数不确定,最少为2步。
求大家帮助想想怎么处理。

解决方案 »

  1.   

    表设计不合理,审核流程应该一步一条记录,并且通过一个单独字段表明该记录处于审核的哪一步,这样后期查找起来就方便很多了。
    倒数第二步审核是通过哪个字段来表示?
      

  2.   

    这数据库是个产品的,现在在其基础上扩展一个接口,没办法没有字段能表示出倒数第二步审核,得知是不是倒数第二步其实就是看审核子表B表中有几条记录,然后用这个记录-1就是倒数第二步