[firebase-br] UPDATE
Francisco A Souza
francisco em logosinfo.com.br
Qui Ago 17 13:13:40 -03 2006
Eu fiz um sp, para ler o movimento de uma tabela(tipo pedidos), e atualizar
outra tabela que grava o resumo das vendas do pedido, tipo um giro de
vendas.
vai o codigo da uma olhada e adapta ao seu sistema:
CREATE PROCEDURE CRIAGIROMES
RETURNS (
ID_LOJA INTEGER,
MES SMALLINT,
ANO SMALLINT,
CODIGO INTEGER,
QUANTIDADE NUMERIC (18, 3),
TOTAL NUMERIC (18, 6))
ASBEGIN
DELETE FROM TABELA_PRODUTOS_GIRO_MES; //aqui fiz uma limpeza na tabela de
giros.
FOR SELECT
CF_ITENS.id_loja,
EXTRACT(MONTH FROM CF.emissao) AS MES,
EXTRACT(YEAR FROM CF.EMISSAO) AS ANO,
CF_ITENS.CODIGO,
SUM(CF_ITENS.QUANTIDADE) AS Quantidade,
SUM(CF_ITENS.PRECO*cf_itens.quantidade) AS TOTAL
FROM
CF_ITENS
LEFT JOIN CF ON (CF_ITENS.ID = CF.ID) AND (CF_ITENS.ID_LOJA =
CF.ID_LOJA)
WHERE CODIGO>0 AND CF.status<>'C'
GROUP BY
CF_ITENS.id_loja,MES,ANO,CF_ITENS.CODIGO
INTO
:ID_LOJA,
:MES,
:ANO,
:CODIGO,
:QUANTIDADE,
:TOTAL /// aqui fiz o select agrupando po
produto,mes e ano somando as quantidades
DO
BEGIN
INSERT INTO TABELA_PRODUTOS_GIRO_MES /(
ID_PRODUTO,
ID_LOJA,
VENDAS,
MES,
ANO,
TOTAL_VENDAS)
VALUES (
:CODIGO,
:ID_LOJA,
:QUANTIDADE,
:MES,
:ANO,
:TOTAL); /// aqui fiz inclusao na tabela de giros.
END
END
Mais detalhes sobre a lista de discussão lista