DannyND 1 Denunciar post Postado Abril 8, 2014 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 R$49,50 a R$379,40 (53) R$379,41 a R$709,30 (23) R$709,31 a R$1.039,20 (6) R$1.039,21 a R$1.369,10 (3) acima de R$1.369,11 (6) 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 { ? } "; Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Abril 8, 2014 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á: $query = "SELECT * FROM `ti_produtos` WHERE `vl_venda` > '49.5' AND `vl_venda` < '379.4'"; Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Abril 8, 2014 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 < Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Abril 8, 2014 Fiz alguns testes (tanto com campos int quanto com decimal) aqui e não tive problemas Danny. Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Abril 8, 2014 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. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 8, 2014 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 ? Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Abril 8, 2014 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. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 8, 2014 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 ? Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Abril 8, 2014 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. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 8, 2014 Listar e classificar conforme o preço ? Como seria saída dos dados ? Compartilhar este post Link para o post Compartilhar em outros sites
DannyND 1 Denunciar post Postado Abril 8, 2014 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. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 8, 2014 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 ... Compartilhar este post Link para o post Compartilhar em outros sites
Fernando C 128 Denunciar post Postado Abril 9, 2014 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 Compartilhar este post Link para o post Compartilhar em outros sites