none
SQL Server: Como unir las marcaciones de Entrada y Salida de un rango de fechas a a una sola fila las que son del mismo dia RRS feed

  • Pregunta

  • hola amigos tengo el mismo problema, mi pregunta seria la siguiente esta misma consulta la eh realizado y funciona correctamente con una sola fecha pero que pasa si quiero buscar por un rango de fecha, las miasmas marcaciones con los mismos empleados pero en dia diferente, e usado esta pero no funciona

    WITH temp AS
    (
        SELECT ROW_NUMBER() OVER(PARTITION BY emplno ORDER BY atttime) AS [rid], emplno, atttime 
        FROM dbo.hour
        WHERE CONVERT(VARCHAR(8), atttime, 112) between '20110919' and '20110929'
           

    SELECT --* FROM temp WHERE EmpleadoID = 9987
            e.emplno,CONVERT(char(10), e.atttime, 103) AS Fecha,CONVERT(char(10), e.atttime, 108)  HoraEntrada, CONVERT(char(10), s.atttime, 108) HoraSalida
            ,CONVERT(char(10), f.atttime, 108) HoraEntrada1,
            HoraSalida1=Case When CONVERT(char(10), g.atttime, 108)=CONVERT(char(10), f.atttime, 108) then NULL
                            when CONVERT(char(10), g.atttime, 108)=CONVERT(char(10), s.atttime, 108) then NULL
                            else CONVERT(char(10), g.atttime, 108)
                            end
    FROM temp e
    LEFT JOIN (SELECT emplno, MIN(atttime) atttime FROM temp WHERE rid > 1 GROUP BY emplno) AS s ON s.emplno = e.emplno
    LEFT JOIN (SELECT emplno, Min(atttime) atttime FROM temp WHERE rid > 2 GROUP BY emplno) AS f ON f.emplno = e.emplno
    LEFT JOIN (SELECT emplno, max(atttime) atttime FROM temp WHERE rid > 1 GROUP BY emplno) AS g ON g.emplno = e.emplno
    WHERE e.rid = 1
      --AND e.emplno =91
    ORDER BY e.emplno

    jueves, 14 de junio de 2018 4:04