Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/01/2012, 05:33
ellgon
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 4
Respuesta: Obtener MAX agrupando por horas

Pues se me ocurre algo así:

Código SQL:
Ver original
  1. SELECT CONVERT(CHAR(8), fecha, 108) AS cuartoHora,
  2.        MAX(CAST(valor AS CHAR)+'_'+CONVERT(CHAR)CONVERT(VARCHAR(),fecha,111)) AS codificacion
  3. FROM tabla
  4. GROUP BY CONVERT(CHAR(8), fecha, 108)

de esa manera obtienes todos los cuartos de hora posibles y te quedas con el que tenga el valor máximo. Como tienes concatenada la fecha, solo tienes que "descodificar" y ya tienes lo que quieres.

Como fallos a la query que te he puesto, al hacer el cast del valor, tendrías que rellenar con ceros a la izquierda ya que sino el max te cogería un 2 como mayor que in 10 (si pones 02 no pasaría eso).

No se si me he explicado demasiado, pero, en cuanto tenga tiempo, completo la query y la pongo con comentarios. Cualquier duda me comentas.

Un saludo

Última edición por ellgon; 13/01/2012 a las 05:34 Razón: La query estaba mal