none
Obtener perfiles para asignar a usuario RRS feed

  • Pregunta

  • Buen día,

    Actualmente estoy desarrollando un sistema en el cual se pueden asignar varios perfiles a un usuario. Por ejemplo tengo 3 tablas: Usuario, RelPerfilesUsuario, PerfilesUsuarios.

    Tabla de Usuarios:

    IdUsuario, Nick

    1, Raul

    2, Maria

    Tabla RelPerfilesUsuario:

    IdUsuario, IdPerfil

    1, 1

    1, 2

    2, 1

    Tabla Perfiles:

    IdPerfil, Perfil

    1, Administrador

    2, Cliente

    3, Capturista

    La consulta que deseo hacer es como mostrar los perfiles que NO tiene asignado el usuario. Por ejemplo con los datos que puse antes si quiero que me muestre los perfiles para el usuario RAUL:

    Capturista (No lo tiene)

    Esperando contar con su apoyo, les mando un cordial saludo...

    lunes, 9 de noviembre de 2015 19:02

Respuestas

  • declare @usuarios table (idusuario int not null primary key, nick varchar(100))
    declare @Perfiles table(idperfil int not null primary key, descripcion varchar(100))
    declare @RElPerfilesUsuario table (idperfil int not null ,idusuario int not null) -- falta la integridad referencial
    insert into  @usuarios values (1,'Raul'),(2,'María')
    insert into @Perfiles values (1,'Administrador'),(2,'Cliente'),(3,'Capturista')
    insert into @RElPerfilesUsuario values (1,1),(1,2),(2,1)
    declare @i int
    set @i=1 -- Raul
    select descripcion, case when rel.idperfil is null  then 'No lo tiene' else 'Lo tiene' end  from @Perfiles p
    					left join  @RElPerfilesUsuario  rel
    					    inner join @usuarios u
    						on rel.idusuario=u.idusuario
    					on p.idperfil=rel.idperfil and rel.idusuario=@i
    
     


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    lunes, 9 de noviembre de 2015 20:52
    Moderador