Erro Sql - Urgente -

3 respostas
G

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+"'

alguém pode me ajudar???
desde já muito obrigado!

3 Respostas

J

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

String sql = "select * from tabela where ";
if(numero!=0)
{
      sql += " numero="+textField.getText();
}
else
      sql += " data BETWEEN '"+data+" ' and ' "+datafinal+" ' ";

é isso ai!!!

falou!

T

Concordo com o jujo, mas acho tb q no seu select esta faltando parenteses.

E

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+"’

Eu acho que assim vai funcionar!

Falou!!!

Criado 25 de maio de 2004
Ultima resposta 30 de jul. de 2004
Respostas 3
Participantes 4