SQL - Sumar fechas solapadas

 
Vista:

Sumar fechas solapadas

Publicado por Nauzet (2 intervenciones) el 11/02/2010 09:57:04
Buenas.

Necesito obtener la suma de horas en rangos de fechas, para ver si cada X días se pasa del máximo de horas permitidos. La tabla que tengo esta formada por dos columnas: "fecha" (tipo date) y "minutos" (integer). Supongamos que dicha tabla tiene los siguientes valores:

fecha | minutos
--------------------------
01/03/2010 | 400
02/03/2010 | 533
03/03/2010 | 0
04/03/2010 | 0
05/03/2010 | 589
06/03/2010 | 600
07/03/2010 | 0
08/03/2010 | 128
09/03/2010 | 256
10/03/2010 | 88
11/03/2010 | 400
12/03/2010 | 323
13/03/2010 | 158

Ahora necesito que me devuelva la suma de los minutos en los periodos de 7 días, cuando la fecha que me pasan es el '07/03/2010'. Por lo que el resultado debería ser:

Totalminutos
--------------------------
2122 --(sería la suma desde el 01/03/2010 hasta el 07/03/2010)
1850 --(sería la suma desde el 02/03/2010 hasta el 08/03/2010)
1573 --(sería la suma desde el 03/03/2010 hasta el 09/03/2010)
1661 --(sería la suma desde el 04/03/2010 hasta el 10/03/2010)
2061 --(sería la suma desde el 05/03/2010 hasta el 11/03/2010)
1795 --(sería la suma desde el 06/03/2010 hasta el 12/03/2010)
1353 --(sería la suma desde el 07/03/2010 hasta el 13/03/2010)

LLevo bastante tiempo intentando solucionar esta problema pero no consigo obtener ninguna solución optima. Les agradecería cualquier ayuda al respeto.
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:Sumar fechas solapadas

Publicado por Ethan (8 intervenciones) el 11/02/2010 17:43:59
intenta esto haber que pasa.
select
x.fecha,
(select suma(d.minutos) from tutabla d
where d.fecha between x.fecha and (x.fecha+6)) as minutosintervalo
from
tutabla x
where x.fecha between '01/03/2010' and '07/03/2010'
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:Sumar fechas solapadas

Publicado por Nauzet  (2 intervenciones) el 11/02/2010 18:52:40
Gracias por la consulta la verdad que es justo la solución al problema que tenía.

Otra cosa, si yo quisiera todos los que tengan en "minutosIntervalo" un valor mayor de 'X' como puedo acceder a este campo desde el SELECT externo??

Gracias otra vez
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:Sumar fechas solapadas

Publicado por Ethan (8 intervenciones) el 12/02/2010 23:47:55
no entendi bien lo que desebas espero sirva

select
y.fecha,y.minutosintervalo
from
(
select
x.fecha,
(select suma(d.minutos) from tutabla d
where d.fecha between x.fecha and (x.fecha+6)) as minutosintervalo
from
tutabla x
where x.fecha between '01/03/2010' and '07/03/2010'
) as y
where y.intervalo>tuvalor
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