Pular para o conteúdo

Fóruns SQL e PL/SQL Dúvida select. Dúvida select.

#95055
gsmdf
Participante

    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]