From: | Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar> |
---|---|
To: | Alberto Cuevas <betocuevas(dot)net(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Restar dos campos de tipo fecha de distintos registros |
Date: | 2016-04-18 19:55:56 |
Message-ID: | 2036005627.451947.1461009356903.JavaMail.root@fmed.uba.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Un registro no "conoce" al registro proximo ni al anterior. Basicamente se me ocurren estas maneras:
postgres=# select * from test;
ord | fechainicial | fechafinal
-----+--------------+------------
1 | 2015-10-01 | 2015-12-01
2 | 2015-08-01 | 2015-10-01
3 | 2015-06-01 | 2015-08-01
4 | 2015-05-01 | 2015-06-01
5 | 2015-04-01 | 2015-05-01
6 | 2015-03-01 | 2015-04-01
7 | 2015-02-01 | 2015-03-01
8 | 2015-01-01 | 2015-01-28
9 | 2014-12-01 | 2015-01-01
10 | 2014-11-01 | 2014-12-01
(10 filas)
postgres=# select *, fechafinal - (select fechainicial from test where ord = t.ord - 1) from test t;
ord | fechainicial | fechafinal | ?column?
-----+--------------+------------+----------
1 | 2015-10-01 | 2015-12-01 |
2 | 2015-08-01 | 2015-10-01 | 0
3 | 2015-06-01 | 2015-08-01 | 0
4 | 2015-05-01 | 2015-06-01 | 0
5 | 2015-04-01 | 2015-05-01 | 0
6 | 2015-03-01 | 2015-04-01 | 0
7 | 2015-02-01 | 2015-03-01 | 0
8 | 2015-01-01 | 2015-01-28 | -4
9 | 2014-12-01 | 2015-01-01 | 0
10 | 2014-11-01 | 2014-12-01 | 0
(10 filas)
2) Usando pl/pgsql, abris un cursor y recorres registro por registro, haciendo un select similar al (subselect) de mas arriba,
3) Calculo que con recursive with puede llegarse a algo, pero me estoy equivocando en algo y no me sale bien.
HTH
Gerardo
----- Mensaje original -----
> De: "Alberto Cuevas" <betocuevas(dot)net(at)gmail(dot)com>
> Para: "Gerardo Herzig" <gherzig(at)fmed(dot)uba(dot)ar>
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Enviados: Lunes, 18 de Abril 2016 15:03:22
> Asunto: Re: [pgsql-es-ayuda] Restar dos campos de tipo fecha de distintos registros
>
>
> 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 (<
> gherzig(at)fmed(dot)uba(dot)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(dot)net(at)gmail(dot)com >
> > Para: pgsql-es-ayuda(at)postgresql(dot)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
> >
> >
> >
> >
> >
> >
>
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Gerardo Herzig | 2016-04-18 20:09:04 | Re: Restar dos campos de tipo fecha de distintos registros |
Previous Message | Hellmuth Vargas | 2016-04-18 18:18:23 | Re: Restar dos campos de tipo fecha de distintos registros |