Pues ya he vuelto con la query terminada.
La query que te da lo que quieres es:
Código SQL:
Ver originalSELECT
cuartoHora,
CAST(SUBSTRING(codificacion, 1,4) AS INT) AS valor,
CONVERT(datetime, SUBSTRING(codificacion, 6, len(codificiacion)), 111) AS fecha
FROM
(
SELECT
CONVERT(CHAR(8), Fecha, 108) AS cuartoHora,
MAX(
RIGHT('0000' + CAST(valor AS CHAR(4)), 4)+'_'+
CONVERT(CHAR)CONVERT(VARCHAR(),fecha,111)
) AS codificacion
FROM tabla
GROUP BY CONVERT(CHAR(8), Fecha, 108)
) A
Puede tener fallos, porque no la he ejecutado, pero el concepto es ese.
Si tienes cualquier duda o quieres que la explique, me dices algo.
Un saludo
Edito: esta query te permite detectar un valor máximo de 9999 (por eso se añaden 4 ceros y se cogen los cuatro caracteres de la derecha) si el valor puede ser mayor, se modifica el número de ceros, el cast(valor as char(X)) y se modifica el right.