Tenho o seguinte sql para pesquisar os pedidos pelo numero do pedido ou pelo intervalo entre a data inicial e a data final… só que ele está trazendo todos os pedidos com o mesmo numero…
SELECT p.idt, p.numero, endereco,nm_rz_social, c.cpf_cnpj, dt_pedido, hr_pedido FROM pedidos p, clientes c
WHERE p.cpf_cnpj = c.cpf_cnpj
AND p.dt_pedido BETWEEN '"+data+"' AND '"+datafinal+"'
OR p.numero = '"+vr_numero+"'
Bom, eu em seu caso nao faria como vc está fazendo…
já que a consulta eh por uma coisa ou por outra, faça um if, e faça duas consultas diferentes, eu acho que o que está trazendo tudo igual ali eh aquele or da ultima comparaçao…
bom, é uma idéia… faça um if e divida as duas consultas tipo assim
Stringsql="select * from tabela where ";if(numero!=0){sql+=" numero="+textField.getText();}elsesql+=" data BETWEEN '"+data+" ' and ' "+datafinal+" ' ";
é isso ai!!!
falou!
T
tissotPJ
Concordo com o jujo, mas acho tb q no seu select esta faltando parenteses.
E
eurimarPJ
Também concordo com tissot.
Seu select deve ficar da seguinte forma:
SELECT p.idt, p.numero, endereco,nm_rz_social, c.cpf_cnpj, dt_pedido, hr_pedido FROM pedidos p, clientes c
WHERE (p.cpf_cnpj = c.cpf_cnpj
AND p.dt_pedido BETWEEN ‘"+data+"’ AND ‘"+datafinal+"’)
OR p.numero = ‘"+vr_numero+"’