[firebase-br] Computed by
Francisco Thiago
jeandeadlucky em yahoo.com.br
Qua Jun 8 10:36:13 -03 2005
Mas se o preço for alterado na tabela de itens? Você tem uma trigger lá pra
refazer o cálculo?
Eu não queria que o campo na tabela de Vendas (hipotética) fosse passível de
alterações. Seja por SQL ou por Programa... Acredito que os Computed não
são.
Mas obrigado, possivelmente terei de fazer algo do tipo, caso não encontre a
solução com o computed :D
Francisco Thiago de Almeida
Enter&Plug Informática
Divisão: Desenvolvimento e Banco de dados
MSN: thiago em enterplug.com.br
Skype: enterplug_thiago
----- Original Message -----
From: "Joelson - Souzamark" <joelsonss em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, June 08, 2005 10:28 AM
Subject: Re: [firebase-br] Computed by
Caro Francisco Thiago
numa rotina parecida no nosso sistema usamos uma trigger pra isso
eis a criaça ;-)
CREATE TRIGGER CALCULA_SAIDA FOR SAIDA
ACTIVE BEFORE INSERT OR UPDATE POSITION 10
AS
BEGIN
SELECT SUM(QUANTIDADE), SUM(VALOR_TOTAL) FROM PROD_SAIDA
WHERE SAIDA = NEW.CODIGO INTO NEW.QUANTIDADE, NEW.VALOR_BRUTO;
IF (NEW.PERC_DESCONTO > 0.00) THEN
BEGIN
NEW.VALOR_DESCONTO = (NEW.PERC_DESCONTO * NEW.VALOR_BRUTO / 100);
NEW.VALOR_LIQUIDO = (NEW.VALOR_BRUTO - NEW.VALOR_DESCONTO);
END
ELSE
IF (NEW.VALOR_DESCONTO > 0.00) THEN
BEGIN
NEW.PERC_DESCONTO = (NEW.VALOR_DESCONTO * 100 / NEW.VALOR_BRUTO);
NEW.VALOR_LIQUIDO = (NEW.VALOR_BRUTO - NEW.VALOR_DESCONTO);
END
ELSE
BEGIN
NEW.PERC_DESCONTO = 0.00;
NEW.VALOR_DESCONTO = 0.00;
NEW.VALOR_LIQUIDO = NEW.VALOR_BRUTO;
END
END
sem mais
Joelson
----- Original Message -----
From: "Francisco Thiago" <jeandeadlucky em yahoo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, June 08, 2005 10:16 AM
Subject: [firebase-br] Computed by
> Pessoal,
>
> Eu tenho uma tabela Pai (venda por exemplo) e gostaria de colocar um campo
> calculado (computed) nela que calculasse o valor da venda.
> Só que eu não consigo fazer o relacionamento na expressão do campo.
>
> Procurei na documentação do IB6 e não encontrei um exemplo. Alguém poderia
> me dar uma mãozinha?
>
> seria algo como
>
> ALTER TABLE CAD_VENDAS
> ADD TOTAL_VENDA
> COMPUTED BY (
> (
> select VALOR_UNITARIO
> from VendaItem
> where VendaItem.CodigoVenda = CAD_VENDAS.CodigoVenda
> ));
>
>
> Obrigado
>
> Francisco Thiago de Almeida
> Enter&Plug Informática
> Divisão: Desenvolvimento e Banco de dados
> MSN: thiago em enterplug.com.br
> Skype: enterplug_thiago
>
>
>
>
>
>
>
>
> ____________________________________________________
> Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis!
> http://mail.yahoo.com.br
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.323 / Virus Database: 267.6.6 - Release Date: 08/06/2005
>
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
____________________________________________________
Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis! http://mail.yahoo.com.br
Mais detalhes sobre a lista de discussão lista