Ver Mensaje Individual
  #1  
Antiguo 15-12-2008
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Reputación: 23
salvica Va por buen camino
Talking De nuevo con las consultas

Hola a tod@s, de nuevo complicándome la vida

Introducción:
Tengo una tabla con los siguientes campos:
- CLAVE --> la clave
- FECHA --> la fecha del registro (año/mes/dia)
- HORA ---> la hora del mismo (hora/minutos/segundos)
(MySql, Zeos y D7)

Problema:
Necesito sacar la suma de los valores de un intervalo de tiempo (por ejemplo 5 minutos) para luego hacer otros cálculos, osea:
Código:
HORA_ORIGEN     VALOR     DESDE      HASTA         DEBE SACAR
===========     ======    ========   ========      ==========
00:00:00          0       00:00:00   00:05:00          0
00:01:00          0       00:01:00   00:06:00        100
00:02:00          0       00:02:00   00:07:00        190
00:03:00          0       00:03:00   00:08:00        240
00:04:00          0       00:04:00   00:09:00        270
00:05:00          0       00:05:00   00:10:00        270
00:06:00        100       00:06:00   00:11:00        270
00:07:00         90       00:07:00   00:12:00        180
00:08:00         50       00:08:00   00:13:00         90
00:09:00         30       00:09:00   00:14:00         40
00:10:00          0       00:10:00   00:15:00         30
00:11:00          0       00:11:00   00:16:00          0
00:12:00         10       00:12:00   00:17:00         30
00:13:00          0       00:13:00   00:18:00         20
00:14:00          0       00:14:00   00:19:00          0
00:15:00         20       00:15:00   00:20:00         20
 ...     siguen ceros 
Para ello hago (bueno, quisiera hacer, porque saca datos donde deben haber cero)
1º - Saco todos los registros de la tabla (select principal)
2º - Para cada hora anterior, la suma de aquellos comprendidos entre esa hora y el intervalo (todo en minutos)
Código SQL [-]
SELECT clave, fecha, hora,
       (SELECT SUM(valor)
          FROM tabla AS p
         WHERE (MINUTE(p.hora) BETWEEN MINUTE(origen.hora) AND (MINUTE(origen.hora)+5))
       ) AS pluvio
  FROM tabla AS origen
¿Donde estoy metiendo "la pataza"?

Gracias por la ayuda
Salvica

Última edición por salvica fecha: 15-12-2008 a las 01:36:47.
Responder Con Cita