none
Contar registros não duplicados no SQL (Resolvido) RRS feed

  • Pergunta

  • Pessoal boa tarde !

    Tenho duas tabelas uma de Aéreo outra de Terrestre e nelas existem uma coluna chamada id_cliente, como são vários registros com valores diferentes, vão ter cliente repetidos nas das tabelas, o que eu gostaria era juntar as duas tabelas e contar todos os cientes, e os que estão repetidos ele contasse uma única vez, para eu saber quantos clientes eu tenho neste banco.

    Alguém poderia me ajudar.

    Obrigado.


    • Editado AndreLPTI quinta-feira, 10 de maio de 2012 00:25
    segunda-feira, 7 de maio de 2012 19:35

Respostas

  • Ola Andre,

    tente fazer desta forma

    CREATE TABLE #AEREO(
    	ID_CLIENTE INT)
    
    CREATE TABLE #TERRESTRE(
    	ID_CLIENTE INT)
    
    	INSERT INTO #AEREO VALUES(1),(2),(3),(6),(8)
    
    
    	INSERT INTO #terrestre VALUES(2),(1),(4),(5),(6),(7),(8)
    
    SELECT count(ID_CLIENTE) 
    FROM(
    SELECT ID_CLIENTE FROM #AEREO
    UNION -- já elimina os duplicados
    SELECT ID_CLIENTE FROM #TERRESTRE) as TABELA


    Att.
    Lukas Baldan

    • Marcado como Resposta AndreLPTI quinta-feira, 10 de maio de 2012 00:25
    segunda-feira, 7 de maio de 2012 19:52

Todas as Respostas

  • Ola Andre,

    tente fazer desta forma

    CREATE TABLE #AEREO(
    	ID_CLIENTE INT)
    
    CREATE TABLE #TERRESTRE(
    	ID_CLIENTE INT)
    
    	INSERT INTO #AEREO VALUES(1),(2),(3),(6),(8)
    
    
    	INSERT INTO #terrestre VALUES(2),(1),(4),(5),(6),(7),(8)
    
    SELECT count(ID_CLIENTE) 
    FROM(
    SELECT ID_CLIENTE FROM #AEREO
    UNION -- já elimina os duplicados
    SELECT ID_CLIENTE FROM #TERRESTRE) as TABELA


    Att.
    Lukas Baldan

    • Marcado como Resposta AndreLPTI quinta-feira, 10 de maio de 2012 00:25
    segunda-feira, 7 de maio de 2012 19:52
  • André,

    Então você esta querendo contar os clientes diferentes e apresentar o resultado, em conjunto com a contagem dos clientes duplicados mas apresentando o valor de 1?

    É isso?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 9 de maio de 2012 13:25
  • André,

    Veja este código louco se atende a sua necessidade:

    Create Table Aereo (Codigo Int Identity(1,1), CodCliente Int) Go Create Table Terrestre (Codigo Int Identity(1,1), CodCliente Int) Go Insert Into Aereo Values(1) Insert Into Aereo Values(2) Insert Into Aereo Values(3) Insert Into Aereo Values(4) Insert Into Aereo Values(5) Insert Into Terrestre Values (1) Insert Into Terrestre Values (2) Insert Into Terrestre Values (3) Insert Into Terrestre Values (4) Insert Into Terrestre Values (5) Insert Into Terrestre Values (1) Insert Into Terrestre Values (1) With QuantidadeClientes(Codigo, CodCliente, CodClienteTerrestre) As ( Select Distinct A.Codigo, A.CodCliente, T.CodCliente from Aereo A Inner Join Terrestre T On A.CodCliente = T.CodCliente ) Select Count(CodClienteTerrestre) As Quantidade from QuantidadeClientes Union All Select Top 1 CodClienteTerrestre from QuantidadeClientes

    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]


    quarta-feira, 9 de maio de 2012 13:48
  • Lukas Baldan,

    Muito obrigado, funcionou direitinho.

    Valeu mesmo !!!

    quinta-feira, 10 de maio de 2012 00:24