Procedure(IB) - Me Ajudem.

Firebird

29/04/2004

Eu tenho as Seguintes Tabelas

// Produtos
TABLE PRODUTOS (
PR_PRODUTO VARCHAR(13),
PR_DESCRI VARCHAR(50),
PR_MARCA INTEGER,
PR_GRUPO INTEGER,
PR_MEDIDA INTEGER,
PR_BRUTO DOUBLE PRECISION,
PR_DESCONTO DOUBLE PRECISION,
PR_IPI DOUBLE PRECISION,
PR_MARGEM DOUBLE PRECISION,
PR_LETRA VARCHAR(1),
PR_FRETE DOUBLE PRECISION,
PR_PROMOCAO VARCHAR(1) DEFAULT ´F´,
PR_VLPROMOCAO DOUBLE PRECISION,
PR_UNMEDIDA VARCHAR(2),
PR_MONTADO VARCHAR(1),
PR_MINIMO DOUBLE PRECISION,
PR_MAXIMO DOUBLE PRECISION
)

//Itens da nota de Entrada
TABLE ITENSNOTAE (
INE_AUTO INTEGER,
INE_NOTA VARCHAR(20),
INE_PRODUTO VARCHAR(15),
INE_UNIDADE VARCHAR(5),
INE_DESCRI VARCHAR(50),
INE_PRECO DOUBLE PRECISION,
INE_QTD DOUBLE PRECISION,
INE_DESCONTO DOUBLE PRECISION,
INE_ALIQUOTA DOUBLE PRECISION,
INE_TRIB DOUBLE PRECISION
)

// Itens da Nota de Saida
TABLE ITENSNOTA (
IN_AUTO INTEGER,
IN_NOTA VARCHAR(20),
IN_PRODUTO VARCHAR(15),
IN_UNIDADE VARCHAR(5),
IN_DESCRI VARCHAR(50),
IN_PRECO DOUBLE PRECISION,
IN_QTD DOUBLE PRECISION,
IN_DESCONTO DOUBLE PRECISION,
IN_TRIB DOUBLE PRECISION,
IN_ALIQUOTA DOUBLE PRECISION
)


Gostaria de Criar uma procedure que:
....
- retorne o codigo do produto e seu estoque atual.

estoque atual = soma(ITENSNOTAE.INE_QTD)
- Menos
soma(ITENSNOTA.IN_QTD).

caso o produto não tenha movimentação estoque retorne zero( 0 ).

eu não tenho esperiencia em SP.
Fico grato.

Roberto Rodrigues Jacinto


Rti

Rti

Curtidas 0

Respostas

Diego Uchoa

Diego Uchoa

29/04/2004

SET TERM ^;

CREATE PROCEDURE RETORNA_INFORMACOES_PRODUTO
RETURNS (
ESTOQUE_ATUAL DOUBLE PRECISION
)
AS
BEGIN

FOR
SELECT
SUM(INE.INE_QTD) - SUM(IN.IN_QTD),
FROM PROUTOS P
INNER JOIN ITENSNOTAE INE ON ( INE.ID_PRODUTO = P.ID_PRODUTO )
INNER JOIN ITENSNOTA IN ON ( IN.ID_PRODUTO = P.ID_PRODUTO )
INTO :ESTOQE_ATUAL
DO
BEGIN
SUSPEND;
END;



END
^

SET TERM; ^

/*

VE SE AEW SE PEGA, SENÃO MANDA 1 EMAIL PRA MIM : DIEGOUSBARBOSA@IG.COM.BR

*/


GOSTEI 0
Diego Uchoa

Diego Uchoa

29/04/2004

:idea: tive q criar 1 id pq vc não colocou... :idea:

ALTER TABLE ´PRODUTOS´ ADD ´ID_PRODUTO´ INTEGER NOT NULL;
ALTER TABLE ´ITENSNOTA´ ADD ´ID_PRODUTO´ INTEGER NOT NULL;
ALTER TABLE ´ITENSNOTAE´ ADD ´ID_PRODUTO´ INTEGER NOT NULL;

ALTER TABLE ´PRODUTOS´ ADD PRIMARY KEY (´ID_PRODUTO´)

ALTER TABLE ´ITENSNOTA´ ADD FOREIGN KEY (´ID_PRODUTO´) REFERENCES PRODUTOS (´ID_PRODUTO´);
ALTER TABLE ´ITENSNOTAE´ ADD FOREIGN KEY (´ID_PRODUTO´) REFERENCES PRODUTOS (´ID_PRODUTO´);


GOSTEI 0
POSTAR