select complicado ... Alguem me ajude !!!
Preciso fazer uma pesquisa por nome ou cpf na tabela de cliente, para que ela retorne todos os registros dos contratos referentes a este cliente(tabela contrato). Ainda quero que esta consulta seja feita com a clausula like se for por nome ...Lembro que existe uma chave estrangeira na tabela de contrato com codcliente...
tabela cliente
codcliente (PK)
tabela contrato
codcontrato (PK)
codcliente (FK)
e ai alguem me ajuda ?
tabela cliente
codcliente (PK)
tabela contrato
codcontrato (PK)
codcliente (FK)
e ai alguem me ajuda ?
Midas
Curtidas 0
Respostas
Afarias
28/07/2003
select con.* from contratos con, clientes cli
where con.codcliente=cli.codcliente
and cli.nome starting with ´valor´
ou
select con.* from contratos con, clientes cli
where con.codcliente=cli.codcliente
and cli.nome containing ´valor´
vc deve ter índices nos campos contratos.codcliente, cliente.codcliente e cliente.nome -- nos campos FK ou PK não é necessário criar o índice pois o IB cria automaticamente.
T+
where con.codcliente=cli.codcliente
and cli.nome starting with ´valor´
ou
select con.* from contratos con, clientes cli
where con.codcliente=cli.codcliente
and cli.nome containing ´valor´
vc deve ter índices nos campos contratos.codcliente, cliente.codcliente e cliente.nome -- nos campos FK ou PK não é necessário criar o índice pois o IB cria automaticamente.
T+
GOSTEI 0
Midas
28/07/2003
o seguinte codigo eu fiz mas dá erro pois as tenho o resultado com varias linhas ...se for um cliente só tudo bem ... mas quando da mais de um da erro ...
texto:=´select cod_clien ´Código´ from cliente where´
if RBnome.Checked=true then
texto:= texto + ´ cliente.nome_clien like ´+#39+Editcliente.Text+´¬´+39
else
texto:= texto + ´ cliente.cpf_clien = ´+ 39+ editcliente.Text+39;
texto:= texto + ´ and cliente.cod_clien intersect select distinct cod_cont ´N.Número´,contrato_cont Contrato from contrato ´;
sql.add(texto);
open;
end;
end;
tenho que fazer um query que procure letra por letra o por nome no evento onchange do edit ou por cpf.... o resultado tenho que pegar o codigo do cliente e procurar todos os registros pertencentes a ele na tabela de contrato...
texto:=´select cod_clien ´Código´ from cliente where´
if RBnome.Checked=true then
texto:= texto + ´ cliente.nome_clien like ´+#39+Editcliente.Text+´¬´+39
else
texto:= texto + ´ cliente.cpf_clien = ´+ 39+ editcliente.Text+39;
texto:= texto + ´ and cliente.cod_clien intersect select distinct cod_cont ´N.Número´,contrato_cont Contrato from contrato ´;
sql.add(texto);
open;
end;
end;
tenho que fazer um query que procure letra por letra o por nome no evento onchange do edit ou por cpf.... o resultado tenho que pegar o codigo do cliente e procurar todos os registros pertencentes a ele na tabela de contrato...
GOSTEI 0
Midas
28/07/2003
select con.* from contratos con, clientes cli
where con.codcliente=cli.codcliente
and cli.nome starting with ´valor´
ou
select con.* from contratos con, clientes cli
where con.codcliente=cli.codcliente
and cli.nome containing ´valor´
vc deve ter índices nos campos contratos.codcliente, cliente.codcliente e cliente.nome -- nos campos FK ou PK não é necessário criar o índice pois o IB cria automaticamente.
T+
valeu vou tentar ...
GOSTEI 0
Midas
28/07/2003
select con.* from contratos con, clientes cli
where con.codcliente=cli.codcliente
and cli.nome starting with ´valor´
ou
select con.* from contratos con, clientes cli
where con.codcliente=cli.codcliente
and cli.nome containing ´valor´
vc deve ter índices nos campos contratos.codcliente, cliente.codcliente e cliente.nome -- nos campos FK ou PK não é necessário criar o índice pois o IB cria automaticamente.
T+
o que seria ´Valor´ ?
GOSTEI 0
Afarias
28/07/2003
|o que seria ´Valor´ ?
o nome q vc está procurando! (q o usuário vai digitar no Edit)
T+
o nome q vc está procurando! (q o usuário vai digitar no Edit)
T+
GOSTEI 0
Midas
28/07/2003
|o que seria ´Valor´ ?
o nome q vc está procurando! (q o usuário vai digitar no Edit)
T+
entendi .. obrigado...
GOSTEI 0