2 vejo 2 alternativas para vc, 
ambas utilizam union commo parte da solução:
alternativa 
A) Crie um Select mais ou menos assim:
   SELECT CLI.NOME
   ,      CLI.FONE
   ,      CAST('Cliente' AS VARCHAR(15)) AS TIPO
   ,      CAST(0 AS SMALLINT) AS ORDEM_PRIMARIA
   FROM   CLIENTE CLI
   WHERE  CLI.FONE LIKE('%'||:TextoAProcurar)
   UNION  
   SELECT FOR.NOME
   ,      FOR.FONE
   ,      CAST('Fornecedor' AS VARCHAR(15)) AS TIPO
   ,      CAST(1 AS SMALLINT) AS ORDEM_PRIMARIA
   FROM   CLIENTE
   WHERE  FOR.FONE LIKE('%'||:TextoAProcurar)
   ORDER BY 4 /* ORDEM PRIMARIA*/ , 1 /* NOME */


B) Crie uma VIEW com esse comando sem o order by e sem o where, e se vc
quiser usar procurar em mais tabelas, como por exemplo, transportadora
etc etc, basta vc adicionar no final acrescentando a sua union, e para
usa-la (a view) vc faz um 
 SELECT <CAMPOS> FROM VIEW WHERE FONE CONTAINING :TextoAProcurar
 ORDER BY ORDEM_PRIMARIA, NOME

PS* Use o CONTAINING COMO ALTERNATIVA PARA O LIKE se assim te resolver.



Em Seg, 2004-12-27 às 01:23, A33 Tecnologia e Informática escreveu:
> Olá Amigos,
> 
> Meu problema é o seguinte:
> Tenho várias tabelas no BD contendo campo FONE. Meu cliente quer pesquisar
> pelo telefone e obter no resultado os registros das diversas tabelas. Caso
> exista um telefone com final 4140 na tabela clientes e outro na tabela
> fornecedores, ele quer que sejam mostrados no mesmo grid.
> Preciso de uma instrução SQL que resolva este problema, "preferencialmente"
> resultando algo assim:
> 
> NOME            FONE         TIPO
> José Luis          3342.4140  Cliente
> ECSAM Ltd    3328.4140   Fornecedor
> 
> Se for o caso, posso adicionar campos nas tabelas.
> 
> Desde já, obrigado pelo interesse!
> 
> José Luis
> 
> 
-- 
     _  ______________________________
    / )|                              |
   / / | Jimi Roy Pugss (41 88377350) |
 _( (_ |  _   Developer World Inc.    |
(((\ \)|_/ )__________________________|
(\\\\ \_/ /                            
 \       /                             
  \    _/                              
  /   /         




-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a