Hola
nuevo wako13...
Te propongo una solucion usando "ventanas logicas"...
Código:
DROP TABLE WAKO PURGE;
CREATE TABLE WAKO
(
FECHA DATE,
CAMPO VARCHAR2(5)
) TABLESPACE AUXILIAR PCTFREE 5 PCTUSED 95;
INSERT INTO WAKO VALUES (TRUNC(SYSDATE) -10, 'VAL_1');
INSERT INTO WAKO VALUES (TRUNC(SYSDATE) -9, 'VAL_1');
INSERT INTO WAKO VALUES (TRUNC(SYSDATE) -8, 'VAL_2');
INSERT INTO WAKO VALUES (TRUNC(SYSDATE) -7, 'VAL_1');
INSERT INTO WAKO VALUES (TRUNC(SYSDATE) -6, 'VAL_1');
INSERT INTO WAKO VALUES (TRUNC(SYSDATE) -5, 'VAL_2');
INSERT INTO WAKO VALUES (TRUNC(SYSDATE) -4, 'VAL_1');
INSERT INTO WAKO VALUES (TRUNC(SYSDATE) -3, 'VAL_1');
INSERT INTO WAKO VALUES (TRUNC(SYSDATE) -2, 'VAL_2');
INSERT INTO WAKO VALUES (TRUNC(SYSDATE) -1, 'VAL_1');
INSERT INTO WAKO VALUES (TRUNC(SYSDATE), 'VAL_1');
COMMIT;
SELECT FECHA,
CAMPO
FROM (
SELECT FECHA,
CAMPO,
LAG(FECHA,1) OVER(ORDER BY FECHA DESC) FECHA_MANIANA,
LAG(CAMPO,1) OVER(ORDER BY FECHA DESC) CAMPO_MANIANA FROM WAKO
)
WHERE CAMPO <> CAMPO_MANIANA
ORDER BY FECHA;
Como ves solo muestra las diferencias, toda la magia aparece cuando usas las funciones LAG y LEAD que son muy potentes debido a que como en este ejemplo, puedes traer el valor de un registro en formato
diferido por asi decirlo.
Cualquier duda, me dices...
Suerte y nos vemos.
Sldo Mario.