From: | Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar> |
---|---|
To: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Funcion ventana nueva consulta |
Date: | 2012-05-24 13:45:25 |
Message-ID: | 73A3A527647BB24F9587AA69EC1A4E16113A18DB@sar001241.Mapfre.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Julio, muchas gracias por responder.
Ahora, se me plantea una nueva duda con respecto a la sentencia (perdón por no haberla expuesto en el msg anterior)
Teniendo los datos de esta manera (se agrega una fecha)
drop table foo;
create table foo (
id serial not null,
tipo numeric(10) not null,
fecha date not null,
imp numeric(10,2) not null,
CONSTRAINT foo_id PRIMARY KEY (id)
);
insert into foo (fecha,tipo, imp) values ('01/01/2012'::date,1,30.5);
insert into foo (fecha,tipo, imp) values ('02/01/2012'::date,1,20.25);
insert into foo (fecha,tipo, imp) values ('03/01/2012'::date,2,30);
insert into foo (fecha,tipo, imp) values ('04/01/2012'::date,1,75.3);
insert into foo (fecha,tipo, imp) values ('05/01/2012'::date,1,75.3);
insert into foo (fecha,tipo, imp) values ('06/01/2012'::date,2,100);
insert into foo (fecha,tipo, imp) values ('15/04/2012'::date,1,30.5+7);
insert into foo (fecha,tipo, imp) values ('16/04/2012'::date,1,20.25+7);
insert into foo (fecha,tipo, imp) values ('17/04/2012'::date,2,30+7);
insert into foo (fecha,tipo, imp) values ('18/04/2012'::date,1,75.3+7);
insert into foo (fecha,tipo, imp) values ('19/04/2012'::date,1,75.3+7);
insert into foo (fecha,tipo, imp) values ('20/04/2012'::date,2,100+7);
insert into foo (fecha,tipo, imp) values ('22/05/2012'::date,1,30.5+17);
insert into foo (fecha,tipo, imp) values ('22/05/2012'::date,1,20.25+17);
insert into foo (fecha,tipo, imp) values ('23/05/2012'::date,2,30+17);
insert into foo (fecha,tipo, imp) values ('23/05/2012'::date,1,75.3+17);
insert into foo (fecha,tipo, imp) values ('24/05/2012'::date,1,75.3+17);
insert into foo (fecha,tipo, imp) values ('24/05/2012'::date,2,100+17);
SQL agregando la fecha.
select fecha,tipo1, tipo2, sum(imp) over (order by id)
from (select id, fecha, imp as tipo1, 0 as tipo2, imp
from foo
where tipo= 1
union
select id, fecha, 0 as tipo1, imp as tipo2, imp*-1
from foo
where tipo= 2) Aux
La consulta es, cómo hacer para obtener datos "semi" detallados?
Digamos, quiero ver el detalle del mes 4, debería ejecutar el sql con el where correspondiente.
Pero el tema es que, la columna SUM, me acumula sobre los registros del where (es lógico porque es lo que le pido), estaría necesitando un acumulado de imp1 imp2 y sum() para lo anterior a abril, que se muestre el detalle de abril movimiento por movimiento (pero que el acumulado sume lo anterior) y luego otro acumulado de todo lo que hay después de abril de forma resumida, en este caso, todo ordenado por fecha, mostrando algo asi:
fecha
imp1
imp2
acumulado
tipo
null
201,35
130
71,35
RESUMEN
15/04/2012
37,5
108,85
detalle
16/04/2012
27,25
136,1
detalle
17/04/2012
37
99,1
detalle
18/04/2012
82,3
181,4
detalle
19/04/2012
82,3
263,7
detalle
20/04/2012
107
156,7
detalle
null
269,35
164
262,05
RESUMEN
Se podrá resolver también?
Nuevamente, gracias
Saludos,
Conrado
From | Date | Subject | |
---|---|---|---|
Next Message | José Gregorio Hernández | 2012-05-24 14:57:32 | Programar cargos automáticos mensuales |
Previous Message | Julio Cesar Diaz Vera | 2012-05-24 12:18:36 | Re: Funcion ventana |