Usuário com melhor resposta
Contar registros não duplicados no SQL (Resolvido)

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
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
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
-
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]
-
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]
- Editado Junior Galvão - MVPMVP quarta-feira, 9 de maio de 2012 13:50
-