Hola Albero

Suponiendo que el Id es la clave para relacionar los registros, eso sale
con un JOIN con la misma  tabla:



WITH base AS (

SELECT * FROM (VALUES
(4,208902,'02','11/02/2015'::date),
(4,208902,'02','16/03/2015'::date),
(4,208902,'02','01/04/2015'::date),
(4 ,404058,'04','20/05/2015'::date),
(4 ,404058,'04','01/07/2015'::date)) as A(Id,Codigo,Tipo_Reg ,Fecha)
)
SELECT a.Id,a.Codigo,a.Tipo_Reg,max(a.Fecha) as ultimo
FROM base as a
JOIN base as b on a.id=b.id and b.tipo_reg='02' and b.Fecha<=a.fecha
WHERE a.Tipo_Reg='04'
GROUP BY  a.Id,a.Codigo,a.Tipo_Reg



El 28 de abril de 2016, 09:02, Alberto Cuevas<betocuevas....@gmail.com>
escribió:

> Buenos días a todos, tengo una tabla en la cual se registra un tipo de
> registro (Tipo_Reg) y la Fecha, lo que se requiere es obtener solo los
> registros con Tipo_Reg = 04 pero que antes hayan tenido Tipo_Reg = 02.
>
> ------------------------------------------------------------
> | Id | Codigo      | Tipo_Reg  |     Fecha    |
> ------------------------------------------------------------
> | 4  |    208902  |    02         |  11/02/2015 |
> | 4  |    208902  |    02         |  16/03/2015 |
> | 4  |    208902  |    02         |  01/04/2015 |
> | 4  |    404058  |    04         |  20/05/2015 |
> | 4  |    404058  |    04         |  01/07/2015 |
> ------------------------------------------------------------
>
> Alguna idea por favor.
>
> Saludos.
>
>
>


-- 
Cordialmente,

Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate

Responder a