GARANTIR DESCONTO

Fórum Trigger para dar baixa em previsões #27090

01/07/2009

0

Boa tarde sou novo no forum e estou precisando da ajuda de todos vocês. Estou precisando de uma trigger que de baixa nosvalores armazenados em uma tabela referente a vendas pois o senario é o seguinto: tabela Codigo da venda Data da Venda Valor Total 145 01/07/2009 R$ 150,25 146 01/07/2009 R$ 250,33 Como são varias vendas com a mesma data tem como eu dar baixa nelas para a tebela de movimentação pela data por exemplo eu tenho 50 vendas no dia 01/07/2009 quando eu receber os valores correspondentes a essas vendas se eu for dar baixa uma por uma vai demorar muito porisso que eu estava querendo por data . Alguem pode me ajudar. Sem mais obrigado pela atenção.



Wlwbm

Wlwbm

Responder

Posts

01/07/2009

Jair Bg

A Trigger vai ser disparada quando? inclusão, alteração antes, depois?
PS não é como no SQL-Server...
caso queira fazer a atualização por data é melhor criar só o procedimento


Responder

Gostei + 0

02/07/2009

Wlwbm

Bom dia jair BG obrigado por responder. Então é que eu trabalho num presidio e é passada uma folha com itens para os sentenciados comprarem ai essa folhas voltam ai eu tenho que pegar e fazer a venda no sisteminha que eu estou criando aqui esta com 1445 sentenciados, apos entregar as mercadorias sempre ou falta algum item ou o sentenciado não quer mais. Porisso eu estou precisando de uma Store Procedure que pegue todas as vendas feitas na data 00/00/2009 e mande para a tabela de movimentção. Eu acho que vou ter que chamar a procedure pois para que ela fassa isso. Você pode me dar uma luz. Obrigado pela atenção.



Responder

Gostei + 0

02/07/2009

Jair Bg

Bom Dia existem muitas maneiras de fazer uma procedure para isso
exemplos é o que não falta, procure um que melhor se adapta a sua necessidade, exemplo para isso seria (+-) assim
CREATE OR REPLACE FUNCTION proc_atual_movimento(data_ini date, data_fin_date) RETURNS void AS
$BODY$
...
INSERT¨INTO movimentacao (campos...)
SELECT campos....
FROM VENDAS
WHERE (data BETWEEN data_ini AND data_fin)
...
return ´´;
end;
$BODY$
LANGUAGE ´plpgsql´ VOLATILE

Não tenho aqui dados o suficiente para apresentar algum resultado..
ative a função numa chamada

SELECT proc_atual_movimento(´2009-01-01´, ´2009-12-31);

deu para similar?


Responder

Gostei + 0

02/07/2009

Wlwbm

jair BG Boa Tarde obrigado por responder ficara assim



CREATE  OR REPLACE FUNCTION proc_atual_movimento(data_ini date, data_fin date) RETURNS void
AS
$BODY$

BEGIN

INSERT INTO movimentacaobancaria(cont_matricula, mvb_datalancamento, mvb_debito, mvb_historico)
VALUES (NEW.cont_matricula, NEW.data_venda_cab, NEW.total_venda_cab, ´VENDA PECULIO´);

SELECT cod_venda_cab, cont_matricula, cod_funcionario, data_venda_cab, vlr_venda_cab, total_venda_cab
FROM venda_cab_movimentacao WHERE (data_venda_cab BETWEEN ata_ini AND data_fin );

RETURN;

END;    
$BODY$

LANGUAGE ´plpgsql´ VOLATILE




Duvida não vai ter que ter uma condição por exemplo if para selecionar o perido das datas. Assim a procedure vai varrer a tabela inteira. Obrigado pela Atenção.



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar