
08/12/2008, 13:39
|
 | | | Fecha de Ingreso: enero-2006 Ubicación: Chile
Mensajes: 237
Antigüedad: 19 años, 1 mes Puntos: 1 | |
Respuesta: Seleccionar los tres ultimos meses de cada registro repetido en UNA tabla SOLUCIONADO
Como necesito los tres ultimos meses, y no mas puedo llegar a una solucion rapida.
primero cree 3 funciones:
FUNCION MES1
BEGIN
DECLARE V1 INTEGER;
SELECT
rem.id
INTO
V1
FROM
tabla rem
WHERE
rem.id = var_princ AND
ORDER BY
rem.id,
rem.anyo_trab DESC,
rem.mes_trab DESC
LIMIT 1 ;
RETURN V1;
END
esta funcion se repite tres veces y lo unico que hay que cambiar es el LIMIT
MES1 - LIMIT 1
MES2 - LIMIT 1,1 ;
MES3 - LIMIT 2,1 ;
Luego cree un procedimiento almacenado que llama las funciones:
BEGIN
DROP TEMPORARY TABLE IF EXISTS tres_ultimos_meses;
CREATE TEMPORARY TABLE tres_ultimos_meses
SELECT *
FROM tabla rem
WHERE rem.id = var_id AND
rem.id IN(
MES1(var_princ, rem.id_trab_cont),
MES2(var_princ, rem.id_trab_cont),
MES3(var_princ, rem.id_trab_cont)
)
ORDER BY rem.id, rem.ano_trab DESC, rem.mes_trab DESC;
--> LLAMO A LA TABLA TEMPORAL PARA MOSTRARLA O TRABAJAR CON ELLA
select * from tres_ultimos_meses;
END
OJALA LES AYUDE Y SI TIENEN OTRA SOLUCION MEJOR BIENVENIDA.
cualquier duda les ayudo
__________________ Atte,
A n g e l u s
Concepción - Chile más vale respuestas bien pensadas, que 7000 post |