Re: [pgbr-geral] RES: SQL Select
>Em 23/06/2017, Ricardoescreveu: >> Usando select não vou conseguir, vou trabalhar com um função para seguar >> nesse resultado abaixo. Consegue sim. Você pode usar a window function lag() para acessar dados de janelas passadas. Mas... On Fri, Jun 23, 2017 at 1:31 PM Osvaldo Kussama wrote: > Mas isto tem algum sentido? ...concordo que está parecendo estranho. Melhor parar e pensar no resultado que você quer alcançar antes de continuar tentando escrever o select na tentativa-e-erro. -- Arthur Nascimento - tureba ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: SQL Select
Mas isto tem algum sentido? É um view onde lista a soma das entradas e saidas por mês, o problema está quando não há entrada ou saídas. Está complicado mesmo, mas não posso mudar as tabelas. CREATE OR REPLACE VIEW public."Extrato" ( "Tipo", "Referencia", "Ano", "Valor_Mes", "Mes", "Valor_Parcial_Entrada", "Valor_Parcial_Saida") AS SELECT'Entrada'::text AS "Tipo", p."Referencia", p."Ano", p."Valor_Mes", p."Mes", sum(p."Valor_Mes") OVER ( ORDER BY p."Mes") AS "Valor_Parcial_Entrada", 0 AS "Valor_Parcial_Saida" FROM ( SELECT "Tabela_Consumo"."Referencia", "Tabela_Consumo"."Ano", sum("Tabela_Consumo"."Valor") AS "Valor_Mes", "Tabela_Consumo"."Mes" FROM "Tabela_Consumo" GROUP BY "Tabela_Consumo"."Referencia", "Tabela_Consumo"."Ano" ORDER BY "Tabela_Consumo"."Referencia" ) p UNION SELECT'Saida'::text AS "Tipo", q."Referencia", q."Ano", q."Valor_Mes", q."Mes", 0 AS "Valor_Parcial_Entrada", sum(q."Valor_Mes") OVER ( ORDER BY q."Mes" ) AS "Valor_Parcial_Saida" FROM ( SELECT "Tabela_Despesa"."Referencia", "Tabela_Despesa"."Ano", sum("Tabela_Despesa"."Valor") AS "Valor_Mes", "Tabela_Despesa"."Mes" FROM "Tabela_Despesa" GROUP BY "Tabela_Despesa"."Referencia", "Tabela_Despesa"."Ano" ORDER BY "Tabela_Despesa"."Referencia" ) q ORDER BY "Mes", "Tipo"; Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: SQL Select
Em 23/06/2017, Ricardoescreveu: > Descobri aonde está o erro. Nem sempre tem registro entrada e saida no mes, > dando o erro. > Por exemplo: > Tipo | Mês | Valor Entrada | Valor Saida | > > - > >E| 1| 100,00 |0 | > >S| 1| 0 | 200,00| > >E| 2| 150,00|0 | > >S| 2| 0 |230,00 | > >E| 3| 200,00 |0 | > >S| 3| 0 |310,00 | > >E| 4| 220,00 |0 | > >S| 5| 0 |350,00 | > >E| 5| 240,00 |0 | > > > > > > Usando select não vou conseguir, vou trabalhar com um função para seguar > nesse resultado abaixo. > > > > | Mês | Valor Entrada | Valor Saida | Resultado ( Valor Entrada – > Valor Saida ) do Mês > > -- > > | 1| 100,00 | 200,00| -100,00 > > | 2| 150,00| 230,00|-80,00 > > | 3| 200,00 | 310,00| -110,00 > > | 4| 220,00 |0 |-90,00 –> Não > tem o registro de saida do mes 4, usar o valor do mes anterior ( 220,00 – > 310,00 ) > > | 5| 240,00 | 350,00| -110,00 > > Mas isto tem algum sentido? Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: SQL Select
Descobri aonde está o erro. Nem sempre tem registro entrada e saida no mes, dando o erro. Por exemplo: Tipo | Mês | Valor Entrada | Valor Saida | - E| 1| 100,00 |0 | S| 1| 0 | 200,00| E| 2| 150,00|0 | S| 2| 0 |230,00 | E| 3| 200,00 |0 | S| 3| 0 |310,00 | E| 4| 220,00 |0 | S| 5| 0 |350,00 | E| 5| 240,00 |0 | Usando select não vou conseguir, vou trabalhar com um função para seguar nesse resultado abaixo. | Mês | Valor Entrada | Valor Saida | Resultado ( Valor Entrada – Valor Saida ) do Mês -- | 1| 100,00 | 200,00| -100,00 | 2| 150,00| 230,00|-80,00 | 3| 200,00 | 310,00| -110,00 | 4| 220,00 |0 |-90,00 –> Não tem o registro de saida do mes 4, usar o valor do mes anterior ( 220,00 – 310,00 ) | 5| 240,00 | 350,00| -110,00 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: SQL Select
On Fri, Jun 23, 2017 at 9:55 AM Ricardowrote: > Na verdade vou precisar que me retorne o saldo de cada mês ficando assim Assim é mais tranquilo ainda porque nem precisa de window function; aggregate function já resolve: #select teste.mes, sum(v_entrada) as entrada, sum(v_saida) as saida, sum(v_entrada) - sum(v_saida) from teste group by mes order by 1; mes | entrada | saida | ?column? -+-+---+-- 1 | 100 | 200 | -100 2 | 150 | 230 | -80 3 | 200 | 0 | 200 (3 rows) -- Arthur Nascimento - tureba ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: SQL Select
Bom dia Giovane, Na verdade vou precisar que me retorne o saldo de cada mês ficando assim Tabela Tipo | Mês | Valor Entrada | Valor Saida | - E| 1| 100,00 |0 | S| 1| 0 | 200,00| E| 2| 150,00|0 | S| 2| 0 |230,00 | E| 3| 200,00 |0 | S| 3| 0 |0 | Select | Mês | Valor Entrada | Valor Saida | Resultado ( Valor Entrada – Valor Saida ) do Mês -- | 1| 100,00 | 200,00| -100,00 | 2| 150,00| 230,00|-80,00 | 3| 200,00 |0 | 200,00 Ontem estava meio nebuloso e me expressei mau... Obrigado pela atenção. Ricardo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral