Consulta SQL Server

07/05/2007 - 02:35 por Jorge Diaz | Informe spam
Buenos días, tengo esta consulta :

alter function Rlj_fnTraerHorarios(@cidEmpleado varchar(10),@fDesde
char(8),@fHasta char(8))
returns table as
return (
SELECT TOP 100 PERCENT hs.idempleado, hs.codsuc, hs.fecha,
hs.hora_entrada, finger.hora_entrada AS hora_entrada_real,
hs.hora_rec_salida,
finger.hora_rec_salida AS hora_rec_salida_real,
hs.hora_rec_entrada, finger.hora_rec_entrada AS hora_rec_entrada_real,
hs.hora_salida,
finger.hora_salida AS hora_salida_real,
aus.descripcion, hs.ndia, hs.idsemana, hs.observacion, dias.descripcion AS
nameday
FROM dbo.Rlj_Horario_Semanal hs RIGHT OUTER JOIN
dbo.Rlj_Dias_Semana dias ON hs.ndia = dias.ndia LEFT
OUTER JOIN
dbo.Rlj_DB_fingertec finger ON hs.fecha = finger.fecha
AND hs.idempleado = finger.idempleado LEFT OUTER JOIN
dbo.Rlj_Tipo_Ausencias aus ON hs.idausencia =
aus.idausencia
WHERE (hs.idempleado = @cIdEmpleado) AND (hs.fecha BETWEEN
CONVERT(DATETIME, @fDesde, 102) AND CONVERT(dateTime, @fHasta, 102))
ORDER BY hs.fecha
)

le mando el parámetro cIdEmpleado y me muestra los datos de dicho empleado,
pero necesito saber si ha esta misma consulta puedo generar que al no
mandarle el parámetro empleado o enviarselo en blanco me genere todo el
listado de los empleados.

Me explico?

gracias

Jorge Díaz

Preguntas similare

Leer las respuestas

#1 Javier Loria
07/05/2007 - 02:52 | Informe spam
Hola Jorge:
Podrias enviarle un valor nulo como empleado.
Sin tomar cuenta problemas de desempeño, podrias tratas con:
Buenos días, tengo esta consulta :
=alter function Rlj_fnTraerHorarios(@cidEmpleado varchar(10),@fDesde
char(8),@fHasta char(8))
returns table as
return (
SELECT TOP 100 PERCENT hs.idempleado, hs.codsuc, hs.fecha,
hs.hora_entrada, finger.hora_entrada AS hora_entrada_real,
hs.hora_rec_salida,
finger.hora_rec_salida AS hora_rec_salida_real,
hs.hora_rec_entrada, finger.hora_rec_entrada AS hora_rec_entrada_real,
hs.hora_salida,
finger.hora_salida AS hora_salida_real,
aus.descripcion, hs.ndia, hs.idsemana, hs.observacion, dias.descripcion AS
nameday
FROM dbo.Rlj_Horario_Semanal hs RIGHT OUTER JOIN
dbo.Rlj_Dias_Semana dias ON hs.ndia = dias.ndia LEFT
OUTER JOIN
dbo.Rlj_DB_fingertec finger ON hs.fecha = finger.fecha
AND hs.idempleado = finger.idempleado LEFT OUTER JOIN
dbo.Rlj_Tipo_Ausencias aus ON hs.idausencia aus.idausencia
WHERE (hs.idempleado = @cIdEmpleado OR @cIdEmpleado IS NULL)
AND (hs.fecha BETWEEN CONVERT(DATETIME, @fDesde, 102)
AND CONVERT(dateTime, @fHasta, 102))
ORDER BY hs.fecha
)
= Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"Jorge Diaz" wrote in message
news:Ot9Qo%
Mostrar la cita
#2 Jorge Díaz
07/05/2007 - 15:58 | Informe spam
Hola Javier, gracias por responder, el problema que se me presentaría que
este campo está configurado para que no acepte valores nulos.

Jorge Díaz


"Javier Loria" escribió en el mensaje
news:
Mostrar la cita
#3 DNC
07/05/2007 - 19:26 | Informe spam
fijate si te sirve


declare @cIdEmpleado int
set @cIdEmpleado = null

create table #hs
(idempleado int not null)

insert into #hs values (1)
insert into #hs values (2)
insert into #hs values (3)
insert into #hs values (4)
insert into #hs values (5)
insert into #hs values (6)
insert into #hs values (7)
insert into #hs values (8)

select idempleado from #hs
where #hs.idempleado = isnull(@cIdEmpleado,#hs.idempleado)
go

On 7 mayo, 10:58, "Jorge Díaz" wrote:
Mostrar la cita
Ads by Google
Search Busqueda sugerida