Desafio Stored Procedure MySQL

Delphi

19/07/2012

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

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

19/07/2012

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

Vagner Almeida

19/07/2012

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)
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

19/07/2012

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
GOSTEI 0
POSTAR