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