Ayuda con Count
Publicado por Rodrigo (1 intervención) el 24/06/2013 20:59:23
Buenas Tardes, estoy realizando una sentencia en la cual necesito sacar todas las veces que cierto empleado no marco durante cierto periodo pero la sentencia me envia una cantidad muy grande de registros "SIN MARCA" y no me los agrupa por usuario. Esta es la sentencia
SELECT
Employee.EmployeeId,
Employee.EmployeeFirstName,
Employee.EmployeeLastName,
Employee.EmployeeArea,
EmployeeAccess.EmployeeInTime,
EmployeeAccess.EmployeeOutTime,
EmployeeAccess.EmployeeLabTime,
EmployeeAccess.EmployeeLabDay,
EmployeeAccess.EmployeeJustification,
(
SELECT count (EmployeeAccess.EmployeeOutTime)
FROM EmployeeAccess
WHERE (EmployeeAccess.EmployeeInTime=Cast(N'00:00:00' as nvarchar(9)) and (EmployeeAccess.EmployeeOutTime=Cast (N'00:00:00' as nvarchar(9))))
--group by Employee.EmployeeId
) AS SinMarca
FROM
Employee INNER JOIN
EmployeeAccess ON Employee.EmployeeId = EmployeeAccess.EmployeeId
WHERE (EmployeeAccess.EmployeeJustification IS NULL)
and (Employee.EmployeeArea<>'Soporte Tecnologico')
and (Employee.EmployeeArea<>'Division Gestion de Red y Mantenimiento')
and (Employee.EmployeeArea<>'Continuidad Operativa del Negocio')
group by Employee.EmployeeId,
Employee.EmployeeFirstName,
Employee.EmployeeLastName,
Employee.EmployeeArea,
EmployeeAccess.EmployeeInTime,
EmployeeAccess.EmployeeOutTime,
EmployeeAccess.EmployeeLabTime,
EmployeeAccess.EmployeeLabDay,
EmployeeAccess.EmployeeJustification
order by SinMarca
SELECT
Employee.EmployeeId,
Employee.EmployeeFirstName,
Employee.EmployeeLastName,
Employee.EmployeeArea,
EmployeeAccess.EmployeeInTime,
EmployeeAccess.EmployeeOutTime,
EmployeeAccess.EmployeeLabTime,
EmployeeAccess.EmployeeLabDay,
EmployeeAccess.EmployeeJustification,
(
SELECT count (EmployeeAccess.EmployeeOutTime)
FROM EmployeeAccess
WHERE (EmployeeAccess.EmployeeInTime=Cast(N'00:00:00' as nvarchar(9)) and (EmployeeAccess.EmployeeOutTime=Cast (N'00:00:00' as nvarchar(9))))
--group by Employee.EmployeeId
) AS SinMarca
FROM
Employee INNER JOIN
EmployeeAccess ON Employee.EmployeeId = EmployeeAccess.EmployeeId
WHERE (EmployeeAccess.EmployeeJustification IS NULL)
and (Employee.EmployeeArea<>'Soporte Tecnologico')
and (Employee.EmployeeArea<>'Division Gestion de Red y Mantenimiento')
and (Employee.EmployeeArea<>'Continuidad Operativa del Negocio')
group by Employee.EmployeeId,
Employee.EmployeeFirstName,
Employee.EmployeeLastName,
Employee.EmployeeArea,
EmployeeAccess.EmployeeInTime,
EmployeeAccess.EmployeeOutTime,
EmployeeAccess.EmployeeLabTime,
EmployeeAccess.EmployeeLabDay,
EmployeeAccess.EmployeeJustification
order by SinMarca
Valora esta pregunta


0