Fórum Consulta no Firebird #60584

06/04/2009

0

Boa tarde a todos...

Estou trabalhando com firebird 2.0 e Delphi 7.

Tenho uma tabela chamada ORC onde tem alguns campos chamados de sist1, sist2, sist3, sist4, sist5, sist6, sist7, sist8, sist9, sist10.
Nestes campos posso cadastrar: Feijão, Arroz, Batata, Cebola, Mandioca, Milho, Laranja, Melão, Jaca, Caju, Figo, Manga, e etc...

E posso cadastrar em qualquer ordem.

Como devo proceder para criar uma consulta para localizar todos os registros que contenha os produtos que eu pedir para consultar, sem precisar ser na ordem que coloquei?

Tem alguém que pode me ajudar?

Obrigado.

Uelinton


Uelinton_reis

Uelinton_reis

Responder

Posts

06/04/2009

Pestana_

eu não consegui entender o que você quer! estes dados (Feijão, Arroz...) estão cadastrados aleatoriamente nestes campos (sist1...sist10), é isso?

select nomeCampo1, nomeCampo2 ....
from nomeTabela
where nomeCampo = :valor

paramByName(valor).AsString := ´valor....´


você poderia detalhar mais.


Responder

Gostei + 0

07/04/2009

Uelinton_reis

eu não consegui entender o que você quer! estes dados (Feijão, Arroz...) estão cadastrados aleatoriamente nestes campos (sist1...sist10), é isso?
select nomeCampo1, nomeCampo2 ....
from nomeTabela
where nomeCampo = :valor

paramByName(valor).AsString := ´valor....´
você poderia detalhar mais.


Bom dia amigo,

correto, estes produtos estão cadastrado aleatoriamente, neste campos.
E quando eu vou fazer a consulta eu não sei em que campo este produto esta.
Por exemplo quero encontrar todos os registro que tenha o produto laranja, melão e batata, mas não sei em que campo foi cadastrado. Os produtos podem ter sido cadastrado por exemplo a laranja no sist2, a batata no sist5 e o melão no sist10. No outro registro posso ter cadastrado o arroz no sist1, cebola no sist3, jaca no sist6, manga no sist7, milho no sist8 e batata no sist9.

Obrigado pela ajuda.


Responder

Gostei + 0

07/04/2009

Pestana_

:roll: estranho, eu não entendi o porque de tantos campos para armazenar registros de nome do produto, com isso o select tambem vai ficar estranho.

select *
from orc 
where (sist1 = :valor) 
or (sist2 = :valor)
or (sist3 = :valor)
or (sist4 = :valor)
or (sist5 = :valor)
or (sist6 = :valor)
or (sist7 = :valor)
or (sist8 = :valor)
or (sist9 = :valor)
or (sist10 = :valor)

paramByName(valor).AsString := ´laranja´


ou assim:

select *
from orc 
where (sist1 in (Feijão, Arroz, Batata, Cebola, Mandioca, Milho, Laranja, Melão, Jaca, Caju, Figo, Manga)) 
or (sist2 in (Feijão, Arroz, Batata, Cebola, Mandioca, Milho, Laranja, Melão, Jaca, Caju, Figo, Manga))
or (sist3 in (Feijão, Arroz, Batata, Cebola, Mandioca, Milho, Laranja, Melão, Jaca, Caju, Figo, Manga))
...
...
...



Responder

Gostei + 0

07/04/2009

Uelinton_reis

:roll: estranho, eu não entendi o porque de tantos campos para armazenar registros de nome do produto, com isso o select tambem vai ficar estranho.
select *
from orc 
where (sist1 = :valor) 
or (sist2 = :valor)
or (sist3 = :valor)
or (sist4 = :valor)
or (sist5 = :valor)
or (sist6 = :valor)
or (sist7 = :valor)
or (sist8 = :valor)
or (sist9 = :valor)
or (sist10 = :valor)

paramByName(valor).AsString := ´laranja´
ou assim:
select *
from orc 
where (sist1 in (Feijão, Arroz, Batata, Cebola, Mandioca, Milho, Laranja, Melão, Jaca, Caju, Figo, Manga)) 
or (sist2 in (Feijão, Arroz, Batata, Cebola, Mandioca, Milho, Laranja, Melão, Jaca, Caju, Figo, Manga))
or (sist3 in (Feijão, Arroz, Batata, Cebola, Mandioca, Milho, Laranja, Melão, Jaca, Caju, Figo, Manga))
...
...
...


Certo, o que acontece, este sistema é para cadastro de orçamentos, e temos vários sistemas. Quando o cliente liga, ele diz qual o sistemas ele precisa. No sist1 coloco o primeiro sistema, no sist2 coloco o segundo sistema e assim por diante.
Mas o que acontece, no campo SIST1 pode ser que no primeiro registro se colocou o SISTEMA JACA, e no segundo registro colocou o SISTEMA MANGA.

O que preciso é: Preciso procurar todos os registros que contenha o SISTEMA JACA, SISTEMA MANGA E O SISTEMA BATATA.
Ele vai no primeiro registro e varre todos os campos a procura do SISTEMA JACA, depois varre todos os campos a procura do SISTEMA MANGA, e depois varre todos os campos a procura do SISTEMA BATATA. Depois ele vai para o próximo registro.

Falando assim, parece bem facil né, mas eu não consigo colocar isto na prática.

obrigado.


Responder

Gostei + 0

08/04/2009

Pestana_

não resolveu a solução que eu postei?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar