ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

duvida sql server select entre dois bancos

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
valmirluis42
Novato
Novato


Registrado: Segunda-Feira, 17 de Agosto de 2015
Mensagens: 60

MensagemEnviada: Qui Dez 28, 2017 3:51 pm    Assunto: duvida sql server select entre dois bancos Responder com Citação

Bom estou tentando fazer o select ente 2 bancos, mas o resultado não é o que aparece , só aparece 1 registro ou vários em branco.

SELECT

C.cliente_id,
D.CLIENTE_ID,
c.CGC,
d.cgc,
c.NOME,
D.NOME

FROM banco1_sql.dbo.CLIENTEs as C, banco2_sql.dbo.CLIENTES As D

WHERE c.CGC = (D.CGC)

eu gostaria que o resultado fosse todos os clientes que possuem CGC(nesse caso essa tabela é para o CNPJ ou CPF) em comum nas duas tabelas dos bancos 1 e 2. o que estou fazendo errado?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Qui Dez 28, 2017 4:58 pm    Assunto: Responder com Citação

Eu particularmente gosto de usar JOINS, o seu SQL ficaria assim:

Código:
SELECT C.cliente_id,
        D.CLIENTE_ID,
        c.CGC,
        d.cgc,
        c.NOME,
        D.NOME
   FROM banco1_sql.dbo.CLIENTEs C
        INNER JOIN banco2_sql.dbo.CLIENTES D
        ON C.CGC = D.CGC


Caso o resultado ainda não seja o desejado, experimente fazer um Select em cada um dos bancos buscando o mesmo CGC, assim você pode ver como está saindo em cada um sozinho e depois tenta juntar

SQLs de cada banco:

Banco 1
Código:
SELECT C.cliente_id,
        c.CGC,
        c.NOME,
   FROM banco1_sql.dbo.CLIENTEs C
  WHERE C.CGC = <Valor>


Banco 2
Código:
SELECT D.cliente_id,
        D.CGC,
        D.NOME,
   FROM banco2_sql.dbo.CLIENTEs D
  WHERE D.CGC = <Valor>


caso não funcione, posta aqui o resultado dos 3 selects filtrando pelo mesmo cgc
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
valmirluis42
Novato
Novato


Registrado: Segunda-Feira, 17 de Agosto de 2015
Mensagens: 60

MensagemEnviada: Qui Dez 28, 2017 5:45 pm    Assunto: Responder com Citação

Quando eu mudei o para filtrar por nome, apresenta resultado( porem um banco pode estar com um espaço ou caractere diferente), mas retornou. olha o resultado
alterando apenas
Código:
ON C.nome = D.nome



mas das outras maneiras o resultado não é o o que tem que ser, é esse:



e gostaria que o filtro fosse o CGC e não o nome
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Jan 03, 2018 3:47 pm    Assunto: Responder com Citação

Boa tarde,

Experimente adicionar também um filtro no final para eliminar os registros em que o campo CGC está em branco:

Código:
where C.CGC <> ''


Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos!pres_dutra-residencial-casa
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB