É o seguinte, sou mirim em SQL e precisaria alterar o preço de um produtoPai da tabela abaixo e ao mesmo tempo, alterar automaticamente o produtoFilho que por sua vez pode ser Pai de outro Produto e assim por diante:
AlteracaoPrecoProduto
idProdutoPai idProdutoFilho valor
1 10 R$ 1,00
1 20 R$ 2,50
20 30 R$ 3,00
20 40 R$ 4,00
2 50 R$ 5,00
3 60 R$ 6,00
4 70 R$ 7,00
. . .
. . .
Com trigger, não foi possível.
Consegui fazer somente essa SP:
DELIMITER //
CREATE PROCEDURE sp_atualiza_tabelaprecoproduto_valor (id varchar(20), valor double, medidaEquivalencia int)
BEGIN
declare valorProduto double;
set valorProduto = 0;
set valorProduto = (select AlteracaoPrecoProduto.valor from AlteracaoPrecoProduto
where AlteracaoPrecoProduto.idProduto = id);
if ( valor > valorProduto )
then
update AlteracaoPrecoProduto
set tabelaprecoproduto.valor = (select (AlteracaoPrecoProduto.valor + (AlteracaoPrecoProduto.valor / medidaEquivalencia))
where AlteracaoPrecoProduto.idProdutoPai = id;
end if;
if ( valor < valorProduto )
then
update AlteracaoPrecoProduto
set tabelaprecoproduto.valor = (select (AlteracaoPrecoProduto.valor - (AlteracaoPrecoProduto.valor / medidaEquivalencia))
Pergunta
Prico182
Boa tarde Pessoal!
É o seguinte, sou mirim em SQL e precisaria alterar o preço de um produtoPai da tabela abaixo e ao mesmo tempo, alterar automaticamente o produtoFilho que por sua vez pode ser Pai de outro Produto e assim por diante:
AlteracaoPrecoProduto
idProdutoPai idProdutoFilho valor
1 10 R$ 1,00
1 20 R$ 2,50
20 30 R$ 3,00
20 40 R$ 4,00
2 50 R$ 5,00
3 60 R$ 6,00
4 70 R$ 7,00
. . .
. . .
Com trigger, não foi possível.
Consegui fazer somente essa SP:
DELIMITER //
CREATE PROCEDURE sp_atualiza_tabelaprecoproduto_valor (id varchar(20), valor double, medidaEquivalencia int)
BEGIN
declare valorProduto double;
set valorProduto = 0;
set valorProduto = (select AlteracaoPrecoProduto.valor from AlteracaoPrecoProduto
where AlteracaoPrecoProduto.idProduto = id);
if ( valor > valorProduto )
then
update AlteracaoPrecoProduto
set tabelaprecoproduto.valor = (select (AlteracaoPrecoProduto.valor + (AlteracaoPrecoProduto.valor / medidaEquivalencia))
where AlteracaoPrecoProduto.idProdutoPai = id;
end if;
if ( valor < valorProduto )
then
update AlteracaoPrecoProduto
set tabelaprecoproduto.valor = (select (AlteracaoPrecoProduto.valor - (AlteracaoPrecoProduto.valor / medidaEquivalencia))
where AlteracaoPrecoProduto.idProdutoPai = id;
end if;
END //
DELIMITER ;
Será que tem cura? houvi falar de Cursor.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.