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
> > [email protected]
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
>
>
> --
> João Paulo
> www.dextra.com.br/postgres
> PostgreSQL
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral