Se pudesse queria retornar tudo em uma select, porem não da. Pois o usuario
pode selecionar um produto para pesquisa ou varios.

        Pelo que eu dei uma olha  seria varios for.
       for produto  loop
         begin
            for tmensais loop
             begin
             end;
            for ientrada  loop
            begin
            end;
           (...)
          returno
         end;


o problema é como q eu junto o resultado de cada linha pesquisada e envio o
resultado?  Seria o resultado do produto+tmensais+ientrada+(...) . Como eu
poderia fazer isso?


Em 06/02/08, jota. comm <[EMAIL PROTECTED]> escreveu:
>
> Olá,
>
> Você quer ter um único for e mais de um select é isso?
>
> for variavel  in select * from tabela loop
>
> E dentro desse laço você quer ter um outro for com select ou apenas um
> select?
>
> []s
>
> Em 06/02/08, Rafael dos Santos Ferreira <[EMAIL PROTECTED]> escreveu:
> >
> >
> >
> > Bom dia a todos;
> >
> >
> >
> >    Bueno, tenho as seguintes tabelas :
> >
> >             Produto  – armazena o cadastro de produtos
> >
> >             Tmensais -  armazena o total das saídas mensais dos produtos
> >
> >                         ientrada – armazena as entradas dos produtos
> > dada por notas fiscais
> >
> >                         Prodpedido – Armazena os pedidos feito dos
> > produtos
> >
> >
> >
> >         Eu preciso fazer uma junção destas  tabelas.
> >
> >
> >  select *
> >  select * from tmensais where tmensais. tme_codpro = ??? limit 5)
> >  and
> > (select * from ientrada where ientrada. ien_codpro = ??? limit 10)
> >  and
> > (select * from prodpedido where prodpedido.ppe_coditem = ??? limit 10)
> > from  produto
> >
> >
> >
> > Um amigo do próprio fórum me passou a seguinte dica:
> >
> > **
> >
> > 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';
> >
> >
> >
> >  A minha duvida é a seguinte, como eu faço para utilizar o operador
> > Rowtype se eu tiver mais de uma select dentro do for?
> >
> >
> >
> > obrigado
> >
> >
> >
> >
> >
> > CREATE TABLE "public"."produtos" (
> >
> >   "pro_codigo" SERIAL,
> >
> >   "pro_descri" VARCHAR(40) NOT NULL,
> >
> >   "pro_grupo" INTEGER,
> >
> >   "pro_famili" INTEGER,
> >
> >   "pro_codbar" VARCHAR(13),
> >
> >   "pro_apelid" CHAR(17) NOT NULL,
> >
> >   "pro_unidad" VARCHAR(2) NOT NULL,
> >
> >   "pro_embala" INTEGER,
> >
> >   "pro_pesuni" NUMERIC(10,2),
> >
> >   "pro_aliicm" CHAR(2),
> >
> >   "pro_tribut" CHAR(2),
> >
> >   "pro_cusmed" NUMERIC(7,3),
> >
> >   "pro_cusrep" NUMERIC(7,3),
> >
> >   "pro_preven" NUMERIC(7,3),
> >
> >   "pro_marluc" INTEGER,
> >
> >   "pro_dtalpr" DATE,
> >
> >   "pro_quaest" NUMERIC(9,3),
> >
> >   "pro_ponped" NUMERIC(9,3),
> >
> >   "pro_ordent" CHAR(1),
> >
> > ) WITHOUT OIDS;
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > CREATE TABLE "public"."tmensais" (
> >
> >   "tme_codpro" INTEGER NOT NULL,
> >
> >   "tme_data" DATE NOT NULL,
> >
> >   "tme_quasai" NUMERIC(12,3),
> >
> >   "tme_quaent" NUMERIC(7,3),
> >
> >   "tme_cusmed" NUMERIC(7,3),
> >
> >   "tme_cusrep" NUMERIC(7,3),
> >
> >   "tme_preven" NUMERIC(7,3),
> >
> >   "tme_marluc" INTEGER,
> >
> >   "tme_quaest" NUMERIC(12,3),
> >
> > ) WITHOUT OIDS;
> >
> >
> >
> >
> >
> > CREATE TABLE "public"."mentrada" (
> >
> >   "men_refere" SERIAL,
> >
> >   "men_docume" VARCHAR(10) NOT NULL,
> >
> >   "men_codpro" INTEGER,
> >
> >   "men_codpes" INTEGER,
> >
> >   "men_data" DATE,
> >
> >   "men_quanti" NUMERIC(7,3),
> >
> >   "men_valuni" NUMERIC(7,3),
> >
> >   "men_despes" NUMERIC(7,3),
> >
> > ) WITHOUT OIDS;
> >
> >
> >
> >
> >
> >
> >
> > CREATE TABLE "public"."ientrada" (
> >
> >   "ien_refere" SERIAL,
> >
> >   "ien_entrada" INTEGER NOT NULL,
> >
> >   "ien_codpro" INTEGER NOT NULL,
> >
> >   "ien_quantidade" NUMERIC(10,2),
> >
> >   "ien_valor" NUMERIC(10,2),
> >
> >   "ien_salvar" INTEGER DEFAULT 0,
> >
> > ) WITHOUT OIDS;
> >
> >
> >
> >
> >
> >
> >
> > CREATE TABLE "public"."prodpedido" (
> >
> >   "ppe_pedido" INTEGER NOT NULL,
> >
> >   "ppe_ordem" SERIAL,
> >
> >   "ppe_coditem" INTEGER,
> >
> >   "ppe_quantid" NUMERIC(10,2),
> >
> >   "ppe_preuni" NUMERIC(10,2),
> >
> >   "ppe_valipi" NUMERIC(10,2),
> >
> > ) WITHOUT OIDS;
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > pgbr-geral@listas.postgresql.org.br
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
>
>
> --
> João Paulo
> www.dextra.com.br/postgres
> PostgreSQL
> _______________________________________________
> 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

Reply via email to