› Fóruns › SQL e PL/SQL › Dúvida select. › Dúvida select.
Perfeita solução, Diego!
Matou a pau.
Para os outros entenderem o porque da solução:
Basicamente tem-se dados de perfil de usuario em PU.
Esse perfil pode estar associado a um PERFIL_RECURSO_COMPUTACIONAL. Nesta tabela há um campo IND_EXIGENCIA_UNIDADE. Se este campo estiver setado com um char diferente de ‘N’ (NÃO) então deve-se existir pelo menos um registro em PERFIL_USUARIO_UNIDADE associado a esse PERFIL_USUARIO e PERFIL_RECURSO_COMPUTACIONAL deste perfil_usuario.
Por exemplo o teste que fiz:
Inseri em PERFIL_RECURSO_COMPUTACIONAL um registro com COD_RECURSO_COMPUTACIONAL=1, SEQ=3 e IND_EXIGENCIA_UNIDADE=’S’ (Exige unidade).
Depois inseri em PERFIL_USUARIO um registro com COD_USUARIO=1,COD_RECURSO_COMPUTACIONAL=1,SEQ_PERFIL=3.
Porém não inseri e não havia na tabela PERFIL_USUARIO_UNIDADE nenhum registro com COD_RECURSO_COMPUTACIONAL=1,SEQ_PERFIL=3,COD_USUARIO=1.
Logo retorna este registro, pois conceitualmente DEVERIA haver uma unidade associada.
Obrigadão!!
[quote=”diego_aj”:2ket3o2v]Bom dia brother,
Também fiquei um pouco confuso com a descrição do seu problema,
mas sei lah, pelo que entendi fiz um esboço abaixo, não testei nem nada,
então da uma olhada aii e vê se era algo parecido.
blz, flw!!!!
SELECT *
FROM PERFIL_USUARIO PU,
PERFIL_RECURSO_COMPUTACIONAL PRC
WHERE PU.COD_RECURSO_COMPUTACIONAL = PRC.COD_RECURSO_COMPUTACIONAL
AND PU.SEQ_PERFIL = PRC.SEQ
AND PRC.IND_EXIGENCIA_UNIDADE’N’
AND PU.COD_RECURSO_COMPUTACIONAL NOT IN
(SELECT PUU.COD_RECURSO_COMPUTACIONAL
FROM PERFIL_USUARIO P,
PERFIL_USUARIO_UNIDADE PUU
WHERE P.COD_RECURSO_COMPUTACIONAL = PUU.COD_RECURSO_COMPUTACIONAL
AND P.SEQ_PERFIL = PUU.SEQ_PERFIL
AND P.COD_USUARIO = PUU.COD_USUARIO);[/quote]