Boa tarde a todos, gostaria de encarecidamente pedir um auxílio num método de um sistema que estou criando. Gostaria de um meio de buscar o menor de vários valores. para explicar melhor vou demonstrar mais ou menos o meu cenário atual: Possuo um cadastro de produtos no meu sistema, e esse cadastro de produtos tem a opção de cadastrar produtos simples e produtos compostos, esses produtos compostos basicamente são como “kits de produtos”, ou seja, são compostos por produtos simples, o problema é que eu faço o controle de estoque dos produtos e precisava controlar a quantidade de produtos compostos para venda, então criei uma tabela no banco de produto composto vinculado ao produto mestre e os produtos da composição. o sistema deveria retornar a quantidade disponível dos kits dependendo do estoque dos produtos de composição. Exemplo: possuo um produto composto chamado “combo” e ele é constituído dos seguintes produtos - 3 X produtos “A”, 2 X produtos “B” e 1 X produto “C”. Nessa situação eu teria por exemplo no estoque do produto “A” 24 unidades, do produto “B” eu teria 40 unidades e do produto “C” eu teria 15 unidades, o estoque do produto combo nesse caso iria analisar qual a menor quantidade possível que seria o quantas vezes conseguiria montar esse kit. no caso do produto “A”, para que eu possa formar um combo preciso de 3 produtos “A”, logo consigo 24/3 = 8 kits com o “A”, no caso do “B” preciso de 2 unidades, logo 40/2 = 20 kits, e “C” 15/1 = 15 kits, dos resultados 8,20 e 15 sei que tenho produtos suficientes apenas para 8 kits, já que acima disso faltará produto para compor o kit, então o estoque deve ser o menor desses valores.
Com o cenário explicado queria um meio de fazer com que meu sistema retornasse o menor dos valores sendo que, a tabela do banco produto_composição e produtos são diferentes, a tabela produtos é onde os produtos estão cadastrados e a composição faz apenas o vinculo do produto com a quantidade utilizada no multiplicador. Tenho um método que faz um SELECT no banco dentro de um DO WHILE para cada produto vinculado ao produto “pai” e retorna os valores de estoque de cada um dividindo pelo multiplicador utilizado, queria um meio de trazer apenas o menor valor, não se consigo fazer essa interação com um FOR, ou de outro meio, sei que ja consigo os valores de estoque só não consigo resgatar apenas o menor desses valores ainda. se alguém puder ajudar ficarei muito grato. Caso necessitem do código consigo postar mais tarde do meu computador pessoal.
Selecionar apenas o menor valor de uma série de valores
G
2 Respostas
A
Solucao aceita
Pelo que entendi, deve existir 3 tabelas no sistema:
- Produto simples: nome e estoque
- Produto composto: nome
- Composicao : produto composto, produto simples e quantidade
Se for isso, você precisa:
- Um join entre
Composicaoe Produto Simples - Agrupar por produto composto
- Menor valor da divisao de estoque por quantidade (funçao MIN)
Isso deve te dar o estoque de cada kit.
G
Deu muito Certo! estava dificultando tentando criar meios via java sendo que dava pra facilitar no SQL. Sua resposta foi de grande ajuda! muito obrigado mesmo!
Criado 22 de maio de 2018
Ultima resposta 22 de mai. de 2018
Respostas 2
Participantes 2