Fórum Desafio Stored Procedure MySQL #420212

19/07/2012

0

Olá pessoal!
Estou precisando criar uma stored procedure que me retorne uma comição. Minha tabela é composta pelos seguintes campos: Funcionario, subgrupo, grupo, fabricante e comissao. Montei um algoritmo que fará no máximo 4 verificações porque se eu for fazer todas as verificações possíveis serão ao todo 16.

Alguém poderia me dar uma ajuda sobre como posso fazer isso no MySQL? AGRADEÇO DESDE JÁ QUALUQER AJUDA...

O algoritmo que eu montei segue a baixo:

FUN - funcionario | SUB - subgrupo | GRU - grupo | FAB - fabricante | dcom - comissao a ser retornada
(t) - retornou registro
(f) - não retornou registro

[Algoritmo]

FUN(t)
SUB(t)
GRU(t)
FAB(t)
else
FAB(f)
else
GRU(f)
FAB(t)
else
FAB(f)
SUB(f)
GRU(t)
FAB(t)
else
FAB(f)
else
GRU(f)
FAB(t)
else
FAB(f)
else
FUN(f)
SUB(t)
GRU(t)
FAB(t)
else
FAB(f)
else
GRU(f)
FAB(t)
else
FAB(f)
SUB(f)
GRU(t)
FAB(t)
else
FAB(f)
else
GRU(f)
FAB(t)
else
FAB(f)
Vagner Almeida

Vagner Almeida

Responder

Posts

19/07/2012

Joel Rodrigues

Cara, eu ia até tentar te ajudar, mas não entendi nada desse teu algorítimo. Tenta explicar o que você precisa verbalmente.
Responder

Gostei + 0

19/07/2012

Vagner Almeida

Rapaz eu montei bei direitinho estruturando, mas quando enviei o post, ficou essa joça ai que se vê!
A idéia é a seguinte:
eu tinha montado uma procedure utilizando como base a tabela verdade entre

Funcionario | Subgrupo | Grupo | Fabricante

Mas usando a atabela verdade a procedure irá fazer até 16 verificações. e se eu conseguir contar uma procedure com base no algoritimo abaixo, terei no máximo 4 verificações.

ignore os pontos.

[Algoritmo]

FUN(t) [Verifica se existe registros com o funcionário informado, tendo, vai para o passo seguinte]
..SUB(t)[Verifica se existe registros com o funcionario e subgrupo, tendo, vai para o passo seguinte]
....GRU(t)[Verifica se existe registros com o funcionario, subgrupo e grupo, tendo, vai para o passo seguinte]
......FAB(t)[e assim por diante]
......else
......FAB(f)
....else
....GRU(f)
......FAB(t)
......else
......FAB(f)
..else
..SUB(f)
....GRU(t)
......FAB(t)
......else
......FAB(f)
....else
....GRU(f)
......FAB(t)
......else
......FAB(f)
else
FUN(f)
..SUB(t)
....GRU(t)
......FAB(t)
......else
......FAB(f)
....else
....GRU(f)
......FAB(t)
......else
......FAB(f)
..else
..SUB(f)
....GRU(t)
......FAB(t)
......else
......FAB(f)
....else
....GRU(f)
......FAB(t)
......else
......FAB(f)
Responder

Gostei + 0

20/07/2012

Joel Rodrigues

Bem, não é o procedure todo mas aí vai uma dica: para verificar se existem registros numa consulta, utilize a cláusula EXISTS. Documentação: http://dev.mysql.com/doc/refman/5.0/en/exists-and-not-exists-subqueries.html
Responder

Gostei + 0

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

Aceitar