Consulta no Firebird
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
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
Curtidas 0
Respostas
Pestana_
06/04/2009
eu não consegui entender o que você quer! estes dados (Feijão, Arroz...) estão cadastrados aleatoriamente nestes campos (sist1...sist10), é isso?
você poderia detalhar mais.
select nomeCampo1, nomeCampo2 .... from nomeTabela where nomeCampo = :valor paramByName(valor).AsString := ´valor....´
você poderia detalhar mais.
GOSTEI 0
Uelinton_reis
06/04/2009
eu não consegui entender o que você quer! estes dados (Feijão, Arroz...) estão cadastrados aleatoriamente nestes campos (sist1...sist10), é isso?
você poderia detalhar mais.
select nomeCampo1, nomeCampo2 .... from nomeTabela where nomeCampo = :valor paramByName(valor).AsString := ´valor....´
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.
GOSTEI 0
Pestana_
06/04/2009
: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.
ou assim:
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)) ... ... ...
GOSTEI 0
Uelinton_reis
06/04/2009
: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.
ou assim:
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´
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.
GOSTEI 0
Pestana_
06/04/2009
não resolveu a solução que eu postei?
GOSTEI 0