Era isso mesmo que eu precisava. So uma duvida
que tipo de operador é o %ROWTYPE?

obrigado


Em 23/01/08, Osvaldo Rosario Kussama <[EMAIL PROTECTED]>
escreveu:
>
> Rafael dos Santos Ferreira escreveu:
> >
> >
> >     Eu tenho duas tabelas, produtos e saidas. A tabela de produtos tem o
> > cadastro do produto
> >  e a tabela saida tem o total de saida mensal daquele produto.
> >
> >  Saida:
> >     sai_produto integer
> >     sai_quantidade numeric (10,2)
> >     sai_valor          numeric (10,2)
> >     sai_data          date;
> >
> >  o campo sai_data tera a ultimo dia do mes em questão.
> >
> > sai_produto     sai_quantidade  sai_valor    sai_data
> >    01                       10,00            1,50      31/01/2007
> >    01                       110,00          1,50      28/02/2007
> >    01                       1,00              0,50      31/03/2007
> >
> >
> >
> >
> >  Eu precisava relacionar elas duas da seguinte maneira:
> > Os produtos com as suas 5 ultimas saidas.
> > A grosso modo seria mais ou menos assim:
> >
> >
> > select * (select * from saidas where saida.sai_codpro = ??? limit 5)
> > from produto
> >
>
>
> É difícil resolver este problema em uma expr'essão SQL. (difícil,
> não impossível para casos particulares).
>
> É mais simples utilizar uma função do tipo:
> CREATE OR REPLACE FUNCTION ult_n_saidas(n integer) RETURNS SETOF
> saida AS
> $$
> DECLARE
>    r_sai saida%ROWTYPE;
>    r_prod RECORD;
>
> BEGIN
>    FOR r_prod IN SELECT DISTINCT cod_produto from produtos order
> by cod_produto LOOP
>       FOR r_sai IN SELECT * FROM saida
>                     WHERE sai_produto = r_prod.cod_produto
>                      ORDER BY sai_data DESC LIMIT n LOOP
>             RETURN NEXT r_sai;
>       END LOOP;
>    END LOOP;
>    RETURN;
> END;
> $$ language 'plpgsql';
>
> SELECT * FROM ult_n_saidas(5);
>
> 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

Responder a