有如下数据:
roleid systemid moduleid moduleurl employeeid rightvalue
1 1 21 aa.aspx 14 0011 (备注:第一位表示查看,第二位新增,第三位修改,第四位删除)
2 1 21 aa.aspx 14 0001
3 1 21 aa.aspx 14 1001
1 2 22 bb.aspx 14 1001
2 2 22 bb.aspx 14 0001
3 2 22 bb.aspx 14 0101 想得到数据:
systemid moduleid moduleurl employeeid rightvalue
1 21 aa.aspx 14 1011
2 22 bb.aspx 14 1101也就是说一个人可能属于多个角色roleid,每个角色的权限不同,我想得到他的最大权限比如0011、0001、1001,他们的最大权限值为1011(1表示有权限,0表示没有)
roleid systemid moduleid moduleurl employeeid rightvalue
1 1 21 aa.aspx 14 0011 (备注:第一位表示查看,第二位新增,第三位修改,第四位删除)
2 1 21 aa.aspx 14 0001
3 1 21 aa.aspx 14 1001
1 2 22 bb.aspx 14 1001
2 2 22 bb.aspx 14 0001
3 2 22 bb.aspx 14 0101 想得到数据:
systemid moduleid moduleurl employeeid rightvalue
1 21 aa.aspx 14 1011
2 22 bb.aspx 14 1101也就是说一个人可能属于多个角色roleid,每个角色的权限不同,我想得到他的最大权限比如0011、0001、1001,他们的最大权限值为1011(1表示有权限,0表示没有)
max( rightvalue ) rightvalue
FROM tb
GROUP BY systemid,moduleid,moduleurl,employeeid
from table
group by systemid moduleid moduleurl employeeid
from temp group by systemid
max(left(rightvalue,1))+max(substring(rightvalue,2,1))+max(substring(rightvalue,3,1))+max(right(rightvalue,1)) as rightvalue
from T group by systemid ,moduleid ,moduleurl,employeeid
from temp group by systemid不可以吗?
select systemid,moduleid,moduleurl,employeeid ,
max(substr(rightvalue,1,1)) || max(substr(rightvalue,2,1))||max(substr(rightvalue,3,1))||max(substr(rightvalue,4,1)) as rightvalue
from sys_employeemodule_view group by systemid,moduleid,moduleurl,employeeid