Outra sugestão ...

http://emersonhermann.blogspot.com.br/2013/01/desenvolvendo-querys-sql-para-razao-e.html

http://www.emersonhermann.blogspot.com.br/2012/09/consulta-sql-de-plano-de-contas-query.html


Em 5 de setembro de 2014 09:24, Matheus de Oliveira <
[email protected]> escreveu:

>
> 2014-09-04 23:21 GMT-03:00 Paulo Pereira <[email protected]>:
>
> Tenho duas tabelas: Tabela Saldos das Contas e Tabela Saidas. EX:
>> TABELA SALDOS:
>> CONTA|SALDO
>> 200  | 200.00
>> 201  | 500.00
>>
>> Tenho o seguinte sentença que me retorna a soma das contas, como segue:
>> SELECT row_number() OVER(PART BY conta ORDER BY conta,valor),
>>     setor,
>>     valor,
>>     conta,
>>     SUM(valor) OVER(PART BY conta ORDER BY conta,valor) as Total
>> FROM saidas
>> ORDER BY conta.
>>
>> RETORNO:
>> 1-1-200-50.00-50.00
>> 2-1-200-60.00-110.00
>> 3-1-200-50.00-160.00
>> 1-1-201-80.00-80.00
>> 2-1-201-40.00-120.00
>> 3-1-201-30.00-150.00
>>
>> Preciso buscar o saldo de cada conta da tabela saldos para ficar assim:
>> SALDO  200.00
>> 1-1-200-50.00-250.00
>> 2-1-200-60.00-310.00
>> 3-1-200-50.00-360.00
>> SALDO  500.00
>> 1-1-201-80.00-580.00
>> 2-1-201-40.00-620.00
>> 3-1-201-30.00-650.00
>>
>> Alguem pode dar uma dica ?
>>
>
>
> Eu faria usando UNION ALL, da seguinte forma:
>
>     SELECT 1 AS tipo,
>         NULL::bigint,
>         NULL::integer AS setor,
>         NULL::numeric AS valor,
>         conta,
>         saldo AS Total
>     FROM saldo
>     UNION ALL
>     SELECT 2 AS tipo,
>         row_number() OVER(PARTITION BY conta ORDER BY valor),
>         setor,
>         valor,
>         conta,
>         SUM(valor) OVER(PARTITION BY conta ORDER BY valor) as Total
>     FROM saidas
>     ORDER BY conta, tipo, valor
>
> Assim, na aplicação você só itera os registros (que já virão ordenados),
> quando tipo for 1 é "saldo", quando tipo for 2 é "conta".
>
> Atenciosamente,
> --
> Matheus de Oliveira
> Analista de Banco de Dados
> Dextra Sistemas - MPS.Br nível F!
> www.dextra.com.br/postgres
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a