2016-03-04 9:49 GMT-03:00, Pablo Farias <[email protected]>:
> Ola pessoal,
> sempre trabalhei com o firebird, porem venho migrando para o postgresql,
> porem tenho me esbarrado em algumas coisas que podem ser basicas para voce,
> mais pra eu vem dando um baita trabalhão.
>
> Estou tentando criar a seguinte função basica, só para eu entender o
> funcionamento da mesma, e aplicar mais informações a ela.
>
> A Function em sim é criada sem erro:
>
>
> Create or Replace Function fluxo_base(date, date) returns setof cliente as
> '
> declare
> data date;
> begin
> return query SELECT
> financeiro.id,financeiro.data_vencimento,
> financeiro.numero_documento,
> (SELECT sum(valor_parcela) FROM financeiro WHERE tipo_conta = "R" and
> data_vencimento between $1 and $2) AS "Valor a Receber",
> (SELECT sum(valor_parcela) FROM financeiro WHERE tipo_conta = "P" and
> data_vencimento between $1 and $2) AS "Valor a Pagar"
> FROM
> financeiro;
> return;
> end
> '
> language 'plpgsql'
>
>
> Porem quando eu chamo ela assim:
>
> select * from fluxo_base("05/03/2015","20/07/2018");
>
> Ela gera o seguinte erro:
>
> ERROR: column "05/03/2015" does not exist
> LINE 1: select * from fluxo_base("05/03/2015","20/07/2018");
> ^
> ********** Error **********
>
> ERROR: column "05/03/2015" does not exist
> SQL state: 42703
> Character: 26
>
>
Quando você faz:
... tipo_conta = "R" ...
você está comparando o campo tipo_conta com a variável denominada "R"
e não com a consttante 'R'. Idem para "P".
Tente:
Create or Replace Function fluxo_base(date, date) returns setof cliente as
$$
declare
data date;
begin
return query SELECT
financeiro.id,financeiro.data_vencimento,
financeiro.numero_documento,
(SELECT sum(valor_parcela) FROM financeiro WHERE tipo_conta = 'R'
and data_vencimento between $1 and $2) AS "Valor a Receber",
(SELECT sum(valor_parcela) FROM financeiro WHERE tipo_conta = 'P'
and data_vencimento between $1 and $2) AS "Valor a Pagar"
FROM
financeiro;
end
$$
language 'plpgsql'
e
select * from fluxo_base('05/03/2015'::date, '20/07/2018'::date);
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral