Consulta select agrupada por fechas (sql server05)

Veréis, llevo ya tiempo sin poder sacar nada en claro... (en probado todo tipo de store procedures) pero nada, no soy capaz...
Alguien sabe alguna select para que me agrupe cada quince minutos, desde, los minutos serían así
0:00-0:14 0:15-29 0:30-0:44 0:45-0:59 ... Y así sucesivamente (hay fechas en las que falta un minuto o dos, o por ejemplo el minuto 44 falta)
Esto lo hago para que poner un sum en la select de otro campo y sumarlo

1 Respuesta

Respuesta
1
a ver si esto te sirve igual es una locura pero igual te da otra idea
SELECT     COUNT(HID) AS num, CONVERT(int, SUBSTRING(CONVERT(char(30), syscreated), 16, 2)) / 15 AS cuarto, CONVERT(varchar(2), DAY(syscreated)) 
                      + '/' + CONVERT(varchar(2), MONTH(syscreated)) + '/' + CONVERT(varchar(4), YEAR(syscreated)) + '  ' + CONVERT(varchar(4), { fn HOUR(syscreated) }) 
                      AS fecha_hora
FROM        TU_TABLA
GROUP BY CONVERT(int, SUBSTRING(CONVERT(char(30), syscreated), 16, 2)) / 15, CONVERT(varchar(2), DAY(syscreated)) + '/' + CONVERT(varchar(2), 
                      MONTH(syscreated)) + '/' + CONVERT(varchar(4), YEAR(syscreated)) + '  ' + CONVERT(varchar(4), { fn HOUR(syscreated) })
ORDER BY fecha_hora, cuarto
El campo con la fecha en esta consulta se llama syscreated, lo cambias por el tuyo
Y tu tabla
el primer campo cuenta los registros agruapados (num)
El segundo corta la fecha para obtener solo los minutos y los divido entre 15 para saber a que cuarto corresponde al 0 1, 2, 3 incluso podrías hacer un case para que en cada caso pinte 00:00 - 00:14 ... (cuarto)
El tercero es una concatenación de día, mes, año, hora.
Agrupo por estos dos últimos campos así el programa agrupa por año, mes, día, hora y cuarto luego cuentas los registros o sumas las horas o lo que sea
te va a mostrar
num cuarto fecha_hora con el case podrías poner
3      0       1/2/2010 12                 00:00  -   00:14
4      1       1/2/2010 12                 00:15  -   00:29
Espero que te pueda servir de algo, si no te funciona reabre y lo vemos
Aunque con tanta fórmula si hay muchos registros te puede dar timeout
saludos
Hola a todos!
Veréis, llevo ya tiempo sin poder sacar nada en claro... (en probado todo tipo de store procedures) pero nada, no soy capaz...
Alguien sabe alguna select para que me agrupe cada quince minutos, desde, los minutos serían así
0:00-0:14 0:15-29 0:30-0:44 0:45-0:59 ... y así sucesivamente (hay fechas en las que falta un minuto o dos, o por ejemplo el minuto 44 falta)
Esto lo hago para que poner un sum en la select de otro campo y sumarlo
Muchas gracias... estoy algo desesperado
Increíble!
Que sepas que ha salido perfecto!
Además como lo agrupas con group by y order by pero tienes dentro convert, puedes pasarle una where y los condicionantes y no te casca!
Ha dado los resultados perfectos!
Muchísimas gracias!
Dime donde eres que nos tomemos un cafelete!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas