Update entre tabalas

18/06/2022

4

SQL

Bom dia a todos!!! Estou com um pequeno problema para resolver e não estou conseguindo um método para resolver. é o seguinte, tenho 3 tabelas, uma setor (id_setor, nome_setor, liberado), outra usuario (id_usuario, username, passwd, id_setor) e outra que é a junção de ambas anterior setores_usuarios (id_setor, id_usuario)

Ao cadastrar um usuario seleciono quais setores este usuario podera ter acesso e é gravado o id_setor e id_usuario nessa tabela setores_usuarios, isso esta funcionando perfeitamente.

acontece que em tempo de execução tenho uma tela de cadastro de usuario e preciso que ao selecionar o usuario trazer em um dbgrid todos os setores e campo liberado mostrar checkbox para quais os setores aquele usuario selecionado tem acesso.

para saber qual setor o usuario tem acesso faco um select na tabela setores_usuarios

select
setores_usuarios.id_setor,
setores_usuarios.id_usuario
from setores_usuarios
inner join sys_usuarios on (setores_usuarios.id_usuario = sys_usuarios.codigo)
where
(
(setores_usuarios.id_usuario = sys_usuarios.codigo)
)
order by setores_usuarios.id_setor

com isso filtro todos os setores para o usuario selecionado...

agora vem o que preciso e não estou conseguindo fazer, é pegar o resultado desse select os codigos do ID_SETOR e comparar com a tabela setores ID_SETOR e o codigo que existir nas 2 tabelas para o usuario selecionar gravar na tabela setores campo LIBERADO valores 0 para não liberado e 1 para liberado (que existe registro na tabela setores_usuarios). Isso não estou conseguindo realizar em tempo de execução.

ex: resultado do select tab setores
--------------------------------------- ------------------------------------------
id_setor | id_usuario id_setor | nome_setor | liberado
1 | 1 1 | sala a | 1
3 | 1 2 | sala b | 0
4 | 1 3 | sala c | 1
4 | sala d | 1


em tempo de execução depois de comprar os id_setor entre as 2 tabelas tem que fazer um update no campo LIBERADO na tabela setores.

alguem pode me ajudar ou me passar uma outra solução.


1 usuario pode acessar varios setores
1 setor pode ser acessado por varios usuarios
Iramar Junior

Iramar Junior

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar