Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brevilheri

Consulta de vários dados em um unico campo

Recommended Posts

Estou fazendo uma consulta para gerar um relatorio, esa cosnulta está certinho, mais ele consulta apanas uma matricula no EDMATRICULAS.TEXT, eu no caso preciso que ela consulte varias matriculas, ou seja, ao colocar uma matricula e a virgula, outra matricula e a virgula, ele consulte e gere o relatorio de todas as matriculas inseridas, até não encontrar a virgula. Acredito precisar de um while mais eu nao tenho ideia de como fazer.

Se alguem puder me ajuda reu agradeço...

Segue abaixo a consulta que estou usando....

 

procedure btnOKOnClick(Sender: TfrxComponent);

begin

 

qLOCAL.sql.clear;

qCLIENTE.sql.clear;

qCLIENTE.sql.add('select distinct c.matricula, c.categoria, c.nome, c.endereco, c.numero_imovel, c.hidrometro, c.complemento, c.ROTEIRO,');

qCLIENTE.sql.add('c.ECO_AGUA_RES, c.ECO_AGUA_COM, c.ECO_AGUA_IND, c.ECO_AGUA_PUB, c.ECO_AGUA_UTP,');

qCLIENTE.sql.add('c.ECO_ESG_RES, c.ECO_ESG_COM, c.ECO_ESG_IND, c.ECO_ESG_PUB, c.ECO_ESG_UTP, c.DT_INSTALACAO, l.nome,');

qCLIENTE.sql.add('s.cpf_cnpj, s.bairro, s.telefone, s.codope');

qCLIENTE.sql.add('from cliente c, sgcf s, local l');

qCLIENTE.sql.add(' where c.matricula = ' + EDMATRICULAS.TEXT);

qCLIENTE.sql.add('and c.matricula = s.matricula and c.i_local = l.i_local');

QLOCAL.SQL.ADD('select * from servicos where i_servico = ' + CBSERVICO.TEXT);

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm tenta isso

você faz a consulta e ñ liga o grid com o datasorse faz a pesquisa e copia os valores dos campos da consulta pro grid e depois faz um while como você disse fazendo outra consulta com a outra matricula q por sinal deve ser chave primaria neh

 

só q assim é meio gambi =Þ

por sql ñ sei como faze agora mais posso pesquisa e te fala alguma coisa XD

 

flw espero ter ajudado

se você ñ intende fala ai q eu tento esplica melhor beleza

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue abaixo a consulta que estou usando....

 

procedure btnOKOnClick(Sender: TfrxComponent);

begin

 

qLOCAL.sql.clear;

qCLIENTE.sql.clear;

qCLIENTE.sql.add('select distinct c.matricula, c.categoria, c.nome, c.endereco, c.numero_imovel, c.hidrometro, c.complemento, c.ROTEIRO,');

qCLIENTE.sql.add('c.ECO_AGUA_RES, c.ECO_AGUA_COM, c.ECO_AGUA_IND, c.ECO_AGUA_PUB, c.ECO_AGUA_UTP,');

qCLIENTE.sql.add('c.ECO_ESG_RES, c.ECO_ESG_COM, c.ECO_ESG_IND, c.ECO_ESG_PUB, c.ECO_ESG_UTP, c.DT_INSTALACAO, l.nome,');

qCLIENTE.sql.add('s.cpf_cnpj, s.bairro, s.telefone, s.codope');

qCLIENTE.sql.add('from cliente c, sgcf s, local l');

qCLIENTE.sql.add(' where c.matricula = ' + EDMATRICULAS.TEXT);

qCLIENTE.sql.add('and c.matricula = s.matricula and c.i_local = l.i_local');

QLOCAL.SQL.ADD('select * from servicos where i_servico = ' + CBSERVICO.TEXT);

end;

 

 

Tente usar a clausula IN para fazer a busca

Ex:

 

procedure btnOKonclick(Sender: TfrxComponent);
begin

qLOCAL.sql.clear;
qCLIENTE.sql.clear;
qCLIENTE.sql.add('select distinct c.matricula, c.categoria, c.nome, c.endereco, c.numero_imovel, c.hidrometro, c.complemento, c.ROTEIRO,');
qCLIENTE.sql.add('c.ECO_AGUA_RES, c.ECO_AGUA_COM, c.ECO_AGUA_IND, c.ECO_AGUA_PUB, c.ECO_AGUA_UTP,');
qCLIENTE.sql.add('c.ECO_ESG_RES, c.ECO_ESG_COM, c.ECO_ESG_IND, c.ECO_ESG_PUB, c.ECO_ESG_UTP, c.DT_INSTALACAO, l.nome,');
qCLIENTE.sql.add('s.cpf_cnpj, s.bairro, s.telefone, s.codope');
qCLIENTE.sql.add('from cliente c, sgcf s, local l');
qCLIENTE.sql.add(' where c.matricula in ('+EDMATRICULAS.TEXT+')';
qCLIENTE.sql.add('and c.matricula = s.matricula and c.i_local = l.i_local');
QLOCAL.SQL.ADD('select * from servicos where i_servico = ' + CBSERVICO.TEXT);
end; 

:D

 

eu mudei a seguinte linha

 

qCLIENTE.sql.add(' where c.matricula in ('+EDMATRICULAS.TEXT+')';

Qualquer duvida poste ai!!

Abraços e boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.