Determinar la fecha más reciente

Estimado falvarez, ante todo un cordial saludo. Aquí estoy nuevamente molestándote. Con la respuesta que diste a esta pregunta, no se me resolvió el problema. La verdad es que fallé al plantearla y por eso no me diste la solución correcta. Aquí va nuevamente.
Tengo 6 campos de fecha en 6 diferentes tablas y deseo hacer una selección de la fecha más reciente de entre los 6 campos (es decir, de entre las 6 tablas), pero por fila. Al mismo tiempo deseo pasar esas fechas a una sola tabla. Los datos en las tablas son:
Tabla1 contiene
numsel fecha1
00 01/02/1995
01 08/12/1978
02 25/10/2000
Tabla2 contiene
numsel fecha2
00 08/05/1999
01 18/02/2001
02 11/10/2002
.
. Así sucesivamente hasta
.
.
Tabla6 contiene
numsel fecha6
00 05/05/1987
01 17/08/2002
02 12/10/2002
Lo que deseo obtener de esos datos es la fecha más reciente de la fila que contiene el numsel 00, 01, 02. En otras palabras, siguiendo el ejemplo, de entre todas las 6 tablas, la fecha más reciente en que se seleccionó el 00 debe corresponder a 08/05/1999, para el 01 el 17/08/2002, y para 02 el 12/10/2002.
Te agradezco la celeridad con que respondas a este correo, ya que me urge la solución. Gracias nuevamente por la ayuda.

1 respuesta

Respuesta
1
deberás tener las 6 tablas indexadas por NUMSEL
SELECT TABLA1
INDEX ON NUMSEL TAG NUMSEL && lo mismo con las demas tablas
El codigo en el programa es el siguiente:
Create cursor curaux (numero n(2), fecha d)
SELECT TABLA1
SET ORDER TO NUMSEL
GO TOP
SCAN WHILE NOT EOF()
_FEC_RECIENTE=FECHA1
SCATTER MEMVAR
SELECT TABLA2
IF SEEK (M.NUMSEL)
IF FECHA2>_FEC_RECIENTE
_FEC_RECIENTE=FECHA
ENDIF
ENDIF
SELECT TABLA3
IF SEEK (M.NUMSEL)
IF FECHA3>_FEC_RECIENTE
_FEC_RECIENTE=FECHA
ENDIF
ENDIF
SELECT TABLA4
IF SEEK (M.NUMSEL)
IF FECHA4>_FEC_RECIENTE
_FEC_RECIENTE=FECHA
ENDIF
ENDIF
SELECT TABLA5
IF SEEK (M.NUMSEL)
IF FECHA5>_FEC_RECIENTE
_FEC_RECIENTE=FECHA
ENDIF
ENDIF
SELECT TABLA6
IF SEEK (M.NUMSEL)
IF FECHA6>_FEC_RECIENTE
_FEC_RECIENTE=FECHA
ENDIF
ENDIF
SELECT CURAUX
APPEND BLANK
REPLACE NUMERO WITH M.NUMSEL
REPLACE FECHA WITH _FEC_RECIENTE
SELECT TABLA1
ENDSCAN
SELECT CURAUX
Brow normal
Espero te sirva. SUERTE!
Muchísimas gracias, sobre todo por la rapidez con que me contestaste. Voy a hacer los ajustes y las pruebas pertinentes. Lo cierto es que por lo que puedo apreciar de lo que me enviaste, esta parece ser una solución adecuada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas