Hola a todos; me estoy volviendo loco en esta consulta SQL que trato de
hacer. Viendo lo que es me parece que debe de ser muy sencillo, pero no
consigo que me salga. A ver si me pueden echar una mano, por favor:
Tengo un tabla cuyo valores que me interesan tiene valores como estos:
Cliente Fecha Saldo
00101 06/08/2008 23:23:13 143,15
00101 20/08/2008 22:33:08 152,70
01006 10/08/2008 12:08:25 107,47
01006 20/08/2008 12:08:25 127,00
06536 18/08/2008 12:08:25 257,47
Quiero obtener un registro por cliente, con la fecha más alta (pero no mayor
de la que establezca en la SQL) y el saldo correspondiente a dicha fecha
La SQL seria más o menos:
SELECT Cliente, MAX(Fecha)
FROM Tabla
GROUP BY empresa
HAVING (MAX(Fecha) < CONVERT(DATETIME, '2008-08-19
23:59:59', 121))
ORDER BY Cliente
Claro, si meto la columna del saldo puedo calcular su máximo, mínimo,
promedio, etc. Pero NO VEO CÓMO conseguir el valor del saldo que corresponda
a la empresa y fecha que muestre cada registro
Para "solucionarlo" he hecho un procedimiento almacenada que con cursores
recorro esta consulta y lanzo otra que me muestre el saldo, haciendo un
simple WHERE al nombre del cliente y fecha. Pero no me vale; es
increiblemente largo pues dicha tabla tienes millones de registros y no esta
en un servidor remoto de internet que conecto como un servidor vinculado.
¿Se le ocurre a alguien alguna manera de conseguir esto, aparentemente tan
sencillo?
Muchas gracias desde ya por su ayuda
Saludos
Leer las respuestas