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

数据库查询难题解决方案

2012-01-19 
数据库查询难题1.用户表idmemberCode(权限:2为前台,3为后台)power(可以受理的事项id)121|2|3231|23332.前

数据库查询难题
1.用户表
id         memberCode(权限:2为前台,3为后台)       power(可以受理的事项id)
1             2                                                                         1|2|3
2             3                                                                         1|2            
3             3                                                                         3

2.前后台绑定表
qianTaiId(对应用户表的id)         houTaiId(对应用户表的id)
1                                                                           2|3

比方说:如果1受理了事项3,因为2和3都是他的后台人员,但只有3可以办理该事情,所以如果1受理了事项3的话下一经办人就该是3;如果1受理了事项1的话,下一经办人就该是2。请高手指点下查询语句该怎么写(查询条件是用户id和事项id),解决立即给分,谢谢!

[解决办法]
declare @a table(id int, memberCode int,power varchar(20))
insert @a select 1 ,2 , '1|2|3 '
union all select 2 ,3 , '1|2 '
union all select 3 ,3 , '3 '
union all select 4 ,2, '2|3 '

declare @b table(qianTaiId int, houTaiId varchar(20))
insert @b select 1 , '2|3 '
insert @b select 4 , '2|3 '

declare @id int,@s int
select @id=4,@s=1

select id from @a a, @b b where
qiantaiid=@id and charindex( '| '+ltrim(a.id)+ '| ', '| '+houtaiid+ '| ')> 0
and charindex( '| '+ltrim(@s)+ '| ', '| '+power+ '| ')> 0

热点排行