Hola.
Solo te quedaría eso si unicamente tuvieras
select distinct id from .... Pero no con un
select distinct X.* from ..., Puesto que también se selecciona la clave primaria de X, por lo que si tenemos dos registros con el mismo IdAccion, aparecerá dos veces incluso con el Distinct (debido a que la clave primaria al menos, será distinta).
El
distinct lo ponemos, por si hay dos registros relacionados en Y, al hacernos la unión, no nos devuelva dos veces el mismo registro de X.
Realmente me gustaria que probases esta consulta, a ver si es lo que buscavas, o ver que problema debemos arreglar en ella :
Código:
Select distinct X.*
From X
left outer join Y on X.IdAccion = Y.IdAccion
Where datepart(dy, X.Fecha)=datepart(dy, getdate())) and
Y.Permitido is null or Y.Permitido = 0
Saludos.