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