SQL Server - Agrupar datos por Turnos de trabajo

 
Vista:

Agrupar datos por Turnos de trabajo

Publicado por Luis (4 intervenciones) el 30/08/2008 00:20:41
Solicito que me ayuden a resolver el siguiente problema.- Tengo un sistema que guarda los datos de ingreso y egreso de personal y me piden agrupe los datos por fecha y por turno como hago.- El problema es que el turno noche empieza a las 22 hs hasta las 05:59 del dia siguiente.- Tengo la idea conozco el codigo de Sql pero no me doy cuenta.- mis campos de la tabla movimientos son: "idusuario horaingreso horaegreso tiempo transcurrido" y tengo una tabla Turnos que tiene los intervalos de los turnos y los campos son: "idturno desde hasta" y me solicitan que agrupe los datos por dia y turno - por semana y turno - por mes y por turno
Trabajo con visual 6 conozco los string de conexion y conozco sql server, lo que no me esta fallando y no me doy cuenta la logica.-

El problema general es asi: tengo que sumar el campo tiempo para ver las horas y mostrarlo agrupado por dia- por semana y por mes y agrupado por turno.-
Gracias a quien me pueda ayudar y mil disculpas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Agrupar datos por Turnos de trabajo

Publicado por Isaias (3308 intervenciones) el 30/08/2008 02:06:15
¿Que tanto llevas de codigo SQL?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Agrupar datos por Turnos de trabajo

Publicado por luis (4 intervenciones) el 30/08/2008 02:51:01
Bastante, manejos los tipos de datos como el datetime o smalldatetime etc... el datepart, datename etc..
Se te ocurre alguna idea al respecto....
Desde ya muy amable de tu parte por responder.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Agrupar datos por Turnos de trabajo

Publicado por luis (4 intervenciones) el 30/08/2008 17:20:22
Esto lo logro con el siguiente sql:

SELECT sum(tiempotranscurrido)as tiempo,datepart(hour,horaingreso)as horasola ,idusuario,datepart(day,horaingreso) as diasolo
FROM movimientos
WHERE idusuario = 2
AND horaingreso BETWEEN '20080813 06:00:00' AND '20080814 05:59:59'
GROUP BY DATEPART(day,horaingreso),
DATEPART(hour,horaingreso)
ORDER BY DATEPART(day,horaingreso),DATEPART(hour,horaingreso)

Este es el resultado de la consulta
tiempo(en seg.) horasola idusuario diasolo
2001.8 6 2 13
2027.2 7 2 13
1052.0 8 2 13
3200.0 11 2 13
1300.8 13 2 13
1708.5 14 2 13
2050.2 15 2 13
2130.3 16 2 13
216.5 17 2 13
2440.7 18 2 13
1820.2 19 2 13
2240.0 20 2 13
1340.3 21 2 13
760.1 22 2 13
1950.8 23 2 13
1830.2 0 2 14
2400.2 1 2 14
2300.5 2 2 14
2280.2 3 2 14
2200.3 4 2 14
1200.3 5 2 14

Hasta aqui todo bien pero necesito si existe alguna forma de agruparlo por turnos o sea de 6 a 13 (Mañana) de 14 a 21(Tarde) de 22 a 5 del dia siguiente(Noche) solo eso.-
Te agradezco de antemano.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Agrupar datos por Turnos de trabajo

Publicado por Isaias (3308 intervenciones) el 01/09/2008 15:33:08
Ya te hice un comentario en tu otra posta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Agrupar datos por Turnos de trabajo

Publicado por luis (4 intervenciones) el 03/09/2008 16:39:13
Ok isaias no sabia que eras parte de varios foros. Muchas gracias y lo continuamos en el otro foro.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar