hola agradezco mucho tu respuesta.
Ya lo realice y si en efecto el resultado es lo que esperaba. ahora bien, tengo un procedimiento almacenado y necesito colocar dentro de este esta misma estructura ya la ubique no marca ningún error, pero las observaciones en un solo registro lo da en todos los empleados aunque coloque el idempleado.
aquí esta el procedimiento almacenado:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[TCRSPDetalleResultadoGetConcentradoRH]
@fecha_inf DATETIME,
@fecha_sup DATETIME,
@clv_empresa BIGINT,
@clv_areaBIGINT,
@clv_puestoBIGINT,
@clv_empleado BIGINT,
@clv_tiponomina BIGINT
AS
BEGIN
DECLARE @Temas VARCHAR(max)
SET @Temas = ''
SELECT @Temas = @Temas + ' -- ' + observaciones
from dbo.viewresultados
where (clv_empleado = 1 and fecha between @fecha_inf AND @fecha_sup
AND observaciones <> '')
/**/
SELECT *
INTO #tblHTN
FROM viewHorasTurnoNocturno
WHERE fecha BETWEEN @fecha_inf AND @fecha_sup
SELECT *
INTO #tblTE
FROM viewTiempoExtraTotalMin
WHERE fecha_resultado BETWEEN @fecha_inf AND @fecha_sup
SELECT *
INTO #tblHPD
FROM viewHorasPrimaDominical
WHERE fecha BETWEEN @fecha_inf AND @fecha_sup
SELECT *
INTO #tblHDL
FROM viewHorasDescansoLaborado
WHERE fecha BETWEEN @fecha_inf AND @fecha_sup
SELECT *
INTO #tblHFL
FROM viewHorasFestivoLaborado
WHERE fecha BETWEEN @fecha_inf AND @fecha_sup
SELECT DISTINCT a.clv_empleado,no_nomina,nombre_completo,nombre_completoxapellido,
clv_empresa,razon_social,
clv_puesto,puesto,
clv_area,area,
clv_tiponomina,tipo_nomina,
clv_secuencia,secuencia,
(SELECT COUNT(clv_resultado) FROM tblResultados
WHERE clv_empleado = a.clv_empleado
AND clv_tiporesultado not in (2,4)
AND fecha BETWEEN @fecha_inf AND @fecha_sup) as dias_laborados,
(SELECT COUNT(clv_resultado) FROM tblResultados
WHERE clv_empleado = a.clv_empleado
AND clv_tiporesultado in (2)
AND fecha BETWEEN @fecha_inf AND @fecha_sup) as faltas,
(SELECT COUNT(clv_resultado) FROM viewResultados
WHERE clv_empleado = a.clv_empleado
AND clv_tiporesultado in (4)
AND justificante like 'P003C_DI VACACIONES DISFRUTADAS'
AND fecha BETWEEN @fecha_inf AND @fecha_sup) as vacaciones,
(SELECT COUNT(clv_resultado) FROM viewResultados
WHERE clv_empleado = a.clv_empleado
AND clv_tiporesultado in (4)
AND justificante like '%INCA%'
AND fecha BETWEEN @fecha_inf AND @fecha_sup) as incapacidades,
SUM(n.total_min) as turno_nocturno,
CASE WHEN ISNULL(CAST(SUM(e.total_minutos) as integer),0) / 60 <= 9 THEN
SUM(e.total_minutos)
else
540
END AS extra_doble,
CASE WHEN ISNULL(CAST(SUM(e.total_minutos) as integer),0) / 60 > 9 THEN
SUM(e.total_minutos) - 540
END AS extra_triple,
SUM(d.total_min) as prima_dominical,
SUM(dl.total_min) as descanso_laborado,
SUM(fl.total_min) as festivo_laborado,
(SELECT substring(observaciones,1,2) FROM viewResultados
WHERE clv_empleado = a.clv_empleado
AND clv_tiporesultado in (1)
AND clv_justificante in (25)
AND fecha BETWEEN @fecha_inf AND @fecha_sup) as tmpextperant,
(SELECT count(justificante) FROM viewResultados
WHERE clv_empleado = a.clv_empleado
AND clv_tiporesultado in (4)
AND (justificante like 'P062C_CI%' OR justificante like 'P062C_IM%')
AND fecha BETWEEN @fecha_inf AND @fecha_sup) as productividad,
(SELECT @Temas) as observaciones,
@fecha_inf as fecha_inf,
@fecha_sup as fecha_sup
FROM viewResultados a
LEFT OUTER JOIN #tblHTN n
ON a.clv_empleado = n.clv_empleado
AND CAST(FLOOR(CAST(a.fecha AS FLOAT)) AS DATETIME) = n.fecha
LEFT OUTER JOIN #tblTE e
ON a.clv_empleado = e.clv_empleado
AND CAST(FLOOR(CAST(a.fecha AS FLOAT)) AS DATETIME) = e.fecha_resultado
LEFT OUTER JOIN #tblHPD d
ON a.clv_empleado = d.clv_empleado
AND CAST(FLOOR(CAST(a.fecha AS FLOAT)) AS DATETIME) = d.fecha
LEFT OUTER JOIN #tblHDL dl
ON a.clv_empleado = dl.clv_empleado
AND CAST(FLOOR(CAST(a.fecha AS FLOAT)) AS DATETIME) = dl.fecha
LEFT OUTER JOIN #tblHFL fl
ON a.clv_empleado = fl.clv_empleado
AND CAST(FLOOR(CAST(a.fecha AS FLOAT)) AS DATETIME) = fl.fecha
WHERE CAST(FLOOR(CAST(a.fecha AS FLOAT)) AS DATETIME) BETWEEN @fecha_inf AND @fecha_sup
AND (((@clv_empresa IS NULL) AND (clv_empresa <> -1))
OR (clv_empresa = @clv_empresa))
AND (((@clv_area IS NULL) AND (clv_area <> -1))
OR (clv_area = @clv_area))
AND (((@clv_puesto IS NULL) AND (clv_puesto <> -1))
OR (clv_puesto = @clv_puesto))
AND (((@clv_empleado IS NULL) AND (a.clv_empleado <> -1))
OR (a.clv_empleado = @clv_empleado))
AND (((@clv_tiponomina IS NULL) AND (clv_tiponomina <> -1))
OR (clv_tiponomina = @clv_tiponomina))
GROUP BY a.clv_empleado,no_nomina,nombre_completo,nombre_completoxapellido,
clv_empresa,razon_social,clv_puesto,puesto,clv_area,area,
clv_tiponomina,tipo_nomina,clv_secuencia,secuencia
DROP TABLE #tblHTN
DROP TABLE #tblTE
DROP TABLE #tblHPD
DROP TABLE #tblHDL
DROP TABLE #tblHFL
END
espero me puedas ayudar con esta parte.
Muchísimas gracias
<div id="wrc-float-icon" style="z-index: 2147483646; left: 15px; top: 15px; width: 42px; height: 42px; background-image: url('safari-extension://com.avast.wrc-6H4HRTU5E3/66bdbb5b/images/float/green-1.png'); position: fixed; display: none;"> </div>