Hola lista Con Window Functions ( http://www.postgresql.org/docs/9.4/static/tutorial-window.html) puede realizar eso...para el problema especifico seria asi:
SELECT *,lag(FechaInicial) over(order by Ord),FechaFinal-lag(FechaInicial) over(order by Ord) as diferencia from (values (1,cast('01/10/2015' as date),cast('01/12/2015' as date)), (2,cast('01/08/2015' as date),cast('01/10/2015' as date)), (3,cast('01/06/2015' as date),cast('01/08/2015' as date)), (4,cast('01/05/2015' as date),cast('01/06/2015' as date)), (5,cast('01/04/2015' as date),cast('01/05/2015' as date)), (6,cast('01/03/2015' as date),cast('01/04/2015' as date)), (7,cast('01/02/2015' as date),cast('01/03/2015' as date)), (8,cast('01/01/2015' as date),cast('28/01/2015' as date)), (9,cast('01/12/2014' as date),cast('01/01/2015' as date)), (10,cast('01/11/2014' as date),cast('01/12/2014' as date))) as a(Ord,FechaInicial,FechaFinal) con resultado Ord FechaInicial FechaFinal fechaInicialFilaAnterior Diferencia 1 2015-10-01 2015-12-01 2 2015-08-01 2015-10-01 2015-10-01 0 3 2015-06-01 2015-08-01 2015-08-01 0 4 2015-05-01 2015-06-01 2015-06-01 0 5 2015-04-01 2015-05-01 2015-05-01 0 6 2015-03-01 2015-04-01 2015-04-01 0 7 2015-02-01 2015-03-01 2015-03-01 0 8 2015-01-01 2015-01-28 2015-02-01 -4 9 2014-12-01 2015-01-01 2015-01-01 0 10 2014-11-01 2014-12-01 2014-12-01 0 El 18 de abril de 2016, 13:03, Alberto Cuevas<betocuevas....@gmail.com> escribió: > Muchas gracias por responder, disculpen por no dar un ejemplo mas claro, > mi tabla tiene los registros similar a esto: > > |Ord. | FechaInicial | FechaFinal | > |1 | 01/10/2015 | 01/12/2015 | > |2 | 01/08/2015 | 01/10/2015 | > |3 | 01/06/2015 | 01/08/2015 | > |4 | 01/05/2015 | 01/06/2015 | > |5 | 01/04/2015 | 01/05/2015 | > |6 | 01/03/2015 | 01/04/2015 | > |7 | 01/02/2015 | 01/03/2015 | > |8 | 01/01/2015 | 28/01/2015 | > |9 | 01/12/2014 | 01/01/2015 | > |10 | 01/11/2014 | 01/12/2014 | > > Debo restar FechaFinal - FechaInicial es decir: > > FechaFinal de Ord. 2 - FechaInicial de Ord.1 = 0 dias > FechaFinal de Ord. 3 - FechaInicial de Ord.2 = 0 dias > ...... > Y asi sucesivamente.. > > Espero me puedan entender. > > Saludos. > > > El lun., 18 abr. 2016 a las 12:20, Gerardo Herzig (<gher...@fmed.uba.ar>) > escribió: > >> Vas a tener que orquestar 2 selects distintos para sacar tu "fecha >> inicial" y tu "fecha final". Supongo que tu tabla de ejemplo es >> esquematica, pero mas alla de la posible complejidad del select, el tipo >> date soporta el operador de resta "habitual": >> >> (select fechafinal from TABLA where ord = 1) - (select fechainicial from >> TABLA where ord=2) >> >> En tu ejemplo, el resultado seria negativo, por cierto, pero calculo que >> eso lo podras contemplar. >> HTH >> Gerardo >> ----- Mensaje original ----- >> > De: "Alberto Cuevas" <betocuevas....@gmail.com> >> > Para: pgsql-es-ayuda@postgresql.org >> > Enviados: Lunes, 18 de Abril 2016 13:36:18 >> > Asunto: [pgsql-es-ayuda] Restar dos campos de tipo fecha de distintos >> registros >> > >> > >> > >> > >> > >> > >> > Hola a todos necesito restar dos campos de tipo fecha de distintos >> > registros. >> > >> > FechaFinal - FechaInicial >> > >> > | Ord. | FechaInicial | FechaFinal | >> > | 2 | 26/02/2016 | 02/03/2016 | >> > | 1 | 18/02/2016 | 24/02/2016 | >> > >> > 24/02/2016 - 26/02/2016 = 2 dias >> > >> > Por favor si me pueden ayudar . >> > >> > 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