Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leandro de Jesus

[Resolvido] trazer o valor conforme o peso

Recommended Posts

Olá pessoal,

 

Estou precisando trazer do meu banco de dados o valor a partir de um peso

 

id, peso, valor
1 - 0.300 - 12.00
2 - 1.000 - 15.00
3 - 2.000 - 18.00
4 - 3.000 - 21.00

De 0 a 0.300 custa 12 reais

de 0.301 ate 1.000 custa 15 reais

1.001 ate 2.001 custa 18 reais.

E assim por diante.

 

Então se eu entrar com o peso de 1.250 eu tenhho que trazer o valor de 15,00

 

Algumas coisas que eu fiz não rolou.

BETWEEN peso<= AND peso>=

 

Sinceramente estou um tanto perdido,

Alguma idéia de como proceder?

 

é interessante criar outro campo?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achar o ID

 

SELECT MAX(ID)
FROM   TABELA
WHERE  PESO <= 1250

Achando o valor

 

SELECT VALOR
FROM TABELA
WHERE ID =
(
SELECT MAX(ID)
FROM   TABELA
WHERE  PESO <= 1250
)

O modelo ficaria melhor com peso_de/peso_ate

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho, não consigo ver lógico nesse outro modelo que tu passo peso_de/peso_ate

 

Pode me dar um exemplo de como ficaria porque não entendi mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1)

 

id, peso_de, peso_ate,valor
1 - 0.300 - 0.999    - 12.00
2 - 1.000 - 1.999    - 15.00
3 - 2.000 - 2.999    - 18.00
4 - 3.000 - 999.9999 - 21.00

 

ai bastaria um

... between 1.250 between peso_de and peso_ate ...

2) A query anterior funcionou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah taaaaaa puts entendi.

Vou adaptar agora mas pela sua lógica já resolvo.

Bacana cara, obrigado mesmo pela explicações e ajuda.

 

Grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal,

 

Depois depopular minha tabela com valores e pesos, acabei chegando em um problema.

 

Não esta trazendo o valor correto.

Ex da minha base

 

ID,PESO,VALOR
1, 5, 20.00
2, 3, 15.00

Exemplo de consulta.

Utilizando o exemplo do Motta

 

Com o peso 5.5

Teoricamente teria que me trazer o valor de 20.00

Mas a query abaixo esta me dizendo para trazer a MAIOR ID do peso<=5.5 e a maior nesse caso é a ID 2.

E o correto era me trazer a ID 1.

SELECT VALOR
FROM TABELA
WHERE ID =
(
SELECT MAX(ID)
FROM TABELA
WHERE PESO <= 5.5 
)
Até o momento não achei uma solução.

 

Alguem idéia para resolver isso?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.