Fórum Procedure(IB) - Me Ajudem. #43949
29/04/2004
0
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
// 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
Curtir tópico
+ 0
Responder
Posts
30/04/2004
Diego Uchoa
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
*/
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
*/
Responder
Gostei + 0
30/04/2004
Diego Uchoa
: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´);
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´);
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)