helderhjp
11-03-2008, 00:53
Boas, estou a tentar fazer um trigger que calcule um valor de uma venda.
Tenho a tabela artigos e vendas. Fiz esta parte do código, mas não sei até que parte está bem.
Alguém me pode ajudar como faço para calcular o valor se forem vários produtos na mesma venda?
CREATE TRIGGER venda_I
AFTER INSERT ON vendas
FOR EACH ROW SET
NEW.TOTAL = artigos.PRECO
slack_guy
11-03-2008, 10:22
Tenho a tabela artigos e vendas
Provavelmente vais precisar de uma tabela que relacione as duas: t_vendas_artigos. Uma venda pode incluir vários artigos. Esta tabela terá, além das chaves estrangeiras para o artigo e para a venda, informação da linha da venda: quantidade, preço, observações, desconto, iva, etc.
No final, calcular o valor da venda é uma questão de somar os valores (preços, quantidades, descontos, ivas) dos registos (referentes à venda) existentes nesta tabela.
Não podes fazer o total assim porque ele executa a seguir cada linha inserida. Nem sei como consegues fazer isso com um trigger...
AliFromCairo
13-03-2008, 00:40
Podes sempre criar uma view com a informação que necessitas.
arpinacio
13-03-2008, 00:55
Podes sempre criar uma view com a informação que necessitas.
Nem mais, crias uma view onde mandas cá para fora somente os valores da venda (ou seja o valor de cada produto dessa venda), depois podes fazer algo como
SELECT SUM(preco)
FROM viewVendas