Re: [MASSMAIL] Re: Restar dos campos de tipo fecha de distintos registros

From: "Gilberto Castillo" <gilberto(dot)castillo(at)etecsa(dot)cu>
To: "Gerardo Herzig" <gherzig(at)fmed(dot)uba(dot)ar>
Cc: "Alberto Cuevas" <betocuevas(dot)net(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [MASSMAIL] Re: Restar dos campos de tipo fecha de distintos registros
Date: 2016-04-18 20:12:00
Message-ID: 33748.192.168.207.54.1461010320.squirrel@webmail.etecsa.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Mira esto, no se lo que deseas, pero veo respuestas muy complicadas

select ( '24-02-2016'::date - '26-02-2016'::date) -- (-2)

> 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 suscripci�n:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

--
Saludos,
Gilberto Castillo
ETECSA, La Habana, Cuba

-
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

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Hellmuth Vargas 2016-04-18 20:13:38 Re: Restar dos campos de tipo fecha de distintos registros
Previous Message Gerardo Herzig 2016-04-18 20:09:04 Re: Restar dos campos de tipo fecha de distintos registros