From: | MKHotmail <mcanchas(at)hotmail(dot)com> |
---|---|
To: | "'Alberto Cuevas'" <betocuevas(dot)net(at)gmail(dot)com>, "'Gerardo Herzig'" <gherzig(at)fmed(dot)uba(dot)ar> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Restar dos campos de tipo fecha de distintos registros |
Date: | 2016-04-18 20:36:21 |
Message-ID: | DUB405-EAS17991CD05912FB02E6FCF74D76B0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
No tengo Postgresql a la mano. No obstante la idea podría ser la misma…
CREATE CURSOR l( ORD N(2), FI DATE, FF DATE )
INSERT INTO l values( 1, DATE(2015,10,01) , DATE(2015,12,01) )
INSERT INTO l values( 2, DATE(2015,08,01) , DATE(2015,10,01) )
INSERT INTO l values( 3, DATE(2015,06,01) , DATE(2015,08,01) )
INSERT INTO l values( 4, DATE(2015,05,01) , DATE(2015,06,01) )
INSERT INTO l values( 5, DATE(2015,04,01) , DATE(2015,05,01) )
INSERT INTO l values( 6, DATE(2015,03,01) , DATE(2015,04,01) )
INSERT INTO l values( 7, DATE(2015,02,01) , DATE(2015,03,01) )
INSERT INTO l values( 8, DATE(2015,01,01) , DATE(2015,01,28) )
INSERT INTO l values( 9, DATE(2014,12,01) , DATE(2015,01,01) )
INSERT INTO l values(10, DATE(2014,11,01) , DATE(2014,12,01) )
SELECT ff, ( select FI FROM l WHERE ord = 1), FF - ( select FI FROM l WHERE ord = 1) FROM l WHERE ord = 2 ;
union all ;
SELECT ff, ( select FI FROM l WHERE ord = 2), FF - ( select FI FROM l WHERE ord = 2) FROM l WHERE ord = 3;
union all ;
SELECT ff, ( select FI FROM l WHERE ord = 3), FF - ( select FI FROM l WHERE ord = 3) FROM l WHERE ord = 4;
union all ;
SELECT ff, ( select FI FROM l WHERE ord = 4), FF - ( select FI FROM l WHERE ord = 4) FROM l WHERE ord = 5;
union all ;
SELECT ff, ( select FI FROM l WHERE ord = 5), FF - ( select FI FROM l WHERE ord = 5) FROM l WHERE ord = 6;
union all ;
SELECT ff, ( select FI FROM l WHERE ord = 6), FF - ( select FI FROM l WHERE ord = 6) FROM l WHERE ord = 7;
union all ;
SELECT ff, ( select FI FROM l WHERE ord = 7), FF - ( select FI FROM l WHERE ord = 7) FROM l WHERE ord = 8;
union all ;
SELECT ff, ( select FI FROM l WHERE ord = 8), FF - ( select FI FROM l WHERE ord = 8) FROM l WHERE ord = 9;
union all ;
SELECT ff, ( select FI FROM l WHERE ord = 9), FF - ( select FI FROM l WHERE ord = 9) FROM l WHERE ord = 10;
De: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Alberto Cuevas
Enviado el: lunes, 18 de abril de 2016 01:03 p.m.
Para: Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar>
CC: pgsql-es-ayuda(at)postgresql(dot)org
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 <mailto: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 <mailto: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
>
>
>
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2016-04-18 20:50:29 | Re: Restar dos campos de tipo fecha de distintos registros |
Previous Message | Hellmuth Vargas | 2016-04-18 20:13:38 | Re: Restar dos campos de tipo fecha de distintos registros |