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

Responder a