Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera,
Tenho que montar uma query com faixa de preços, mas não estou conseguindo montar a query.
Faixas de Preços
Faixa de Preço
Preciso montar a query com mais de uma faixa de preço, exemplo:
and vl_venda between '49.5' and '379.4'
and vl_venda between '709.31' and '1039.2'
and vl_venda between '1039.21' and '1369.1'
COMO MONTAR A QUERY PARA MOSTRAR ESSAS 3 FAIXAS DE PREÇOS?
$query = "select * from ti_produtos where { ? } ";
O problema é que nem sempre serão intervalos inteiros, pode ser de 49.5 até 379.4 e depois entre 1000 até 2000, entendeu? Então não posso usar > e <
Fiz alguns testes (tanto com campos int quanto com decimal) aqui e não tive problemas Danny.
SELECT * FROM ti_produtos where vl_venda >= '379.41' and vl_venda <= '709.3' and vl_venda >='1000' and vl_venda <='2000'
Não retorna nada e existem produtos com esses valores.
Se eu colocar apenas uma condição ele retorna os dados corretamente.
case
select sum(case when preco between 49.50 and 79.40 then 1 else 0 end) as faixa1,
sum(case when preco between 379.41 and 709.30 then 1 else 0 end) as faixa2 ...
é isto ?>
case
select sum(case when preco between 49.50 and 79.40 then 1 else 0 end) as faixa1,
sum(case when preco between 379.41 and 709.30 then 1 else 0 end) as faixa2 ...
é isto ?
Isso seria para somar os valores certo? Mas não quero somar "/. .preciso listar os produtos que estão entre essas faixas de preços.
O que se quer ?
Listar quantidades produtos entre faixas ?
Listar produtos entre determinada faixa de preço ?
Achar que produtos existem entre uma faixa de preço ?
>
O que se quer ?
Listar quantidades produtos entre faixas ?
Listar produtos entre determinada faixa de preço ?
Achar que produtos existem entre uma faixa de preço ?
Preciso listar todos os produtos que esteja na faixa de preços, porém podem existir mais de uma faixa em cada pesquisa.
Listar e classificar conforme o preço ?
Como seria saída dos dados ?
>
Listar e classificar conforme o preço ?
Como seria saída dos dados ?
É um filtro de ecommerce, tipo submarino.. .e sim tem opção de ordenar por preço.
Bom eu não entendi qual sua dúvida/problema, mas
Para achar preços num intervalo use between
preco between 123.45 and 234.56
para classificar use CASE
select sum(case when preco between 49.50 and 79.40 then 1 else 0 end) as faixa1,
sum(case when preco between 379.41 and 709.30 then 1 else 0 end) as faixa2 ...se entendi bem, tente OR.
exemplo: tenho uma tabela de lvros com preços entre 70 e 100 reais (campo decimal).
quero recuperar os livros cujos preços estejam entre 70.00 e 79.99 e entre 90 e 100 reais
(excluindo, portanto, os de preço entre 80 e 80.99 reais).
consulta:
select id, titulo from livros where preco between 70.00 and 79.99
OR preco between 90.00 and 100.00
O between serve para comparar datas. Não conheço uma função especifica para comparar estes valores que você precisa, acho que desta forma conseguirá: