Consulta SQL con registros duplicados

Necesito de su ayuda con una consulta que estoy haciendo para un reporte de permisos de usuarios sobre cuentas. Tengo 2 tablas una de Usuarios y una de UsuariosCuentas, en la tabla UsuariosCuenta tengo 5 columnas las cuales estan codificados los permisos que tienen los usuarios sobre las cuentas, en esta tabla la cuenta se puede repetir ya que varios usuarios pueden tener acceso a una misma cuenta.
select distinct ltrim(rtrim(a.Nombre)) + ' ' + ltrim(rtrim(a.Apellido)) as nombre,a.Usuario,b.Cuenta,
case when b.Permisos1 & 512 = 512 or b.Permisos1 & 524288 = 524288 or b.Permisos1 & 536870912 = 536870912 or b.Permisos2 & 256 = 256 then 'X' else '' end as Consulta1,
case when b.Permisos1 & 1024 = 1024 or b.Permisos1 & 1048576 = 1048576 or b.Permisos1 & 1073741824 = 1073741824 or b.Permisos2 & 512 = 512 then 'X' else '' end as Consulta2,
case when b.Permisos1 & 4096 = 4096 or b.Permisos1 & 2097152 = 2097152 or b.Permisos1 & 4096 = 4096 or b.Permisos2 & 262144 = 262144 then 'X' else '' end as Consulta3,
case when b.Permisos2 & 268435456 = 268435456 then 'X' else '' end as Consulta4
from Tabla1 as a,Tabla2 as b where a.usuario=b.usuario and a.usuario='Usuario1' and b.cuenta='00011122223'

Las columnas Consulta1, Consulta2, Consulta3 y Consulta4 son permisos que los usuarios tienen sobre las cuentas Ej. (Consultar Saldos, Emitir Estados de Cuenta, Transferencias, Etc).
El resultado del query esta incorrecto porque por cada CASE WHEN que agrego me genera un nuevo registro, y no deberia ser asi, sino que me deberia de aparecer solo un registro y con las X marcadas solo en los permisos que tienen los usuarios sobre las cuentas.

Añade tu respuesta

Haz clic para o