Fórum Instrução SQL para registros duplicados #264094
04/01/2005
0
Gostaria de montar uma instrução SQL que me retorne todos os
registros da Tabela A que estejam com o mês e o ano repetido fazendo
um join com a tabela B. Ou seja preciso achar os registro com mês / Ano Repetidos.
Tabela A
COD_A CONTA MES ANO
TABELA B
COD_B COD_A ENDERECO
Marcos.rio
Curtir tópico
+ 0Posts
04/01/2005
Sremulador
Gostei + 0
04/01/2005
Andremuller
SELECT * FROM TABLEA A1, TABLEB B WHERE A1.COD_A = B.COD_A AND EXISTS( SELECT MES, ANO, COUNT(COD_A) FROM TABLEA A2 WHERE A1.MES = A2.MES AND A1.ANO = A2.ANO GROUP BY MES, ANO HAVING COUNT(COD_A) > 1 )
Gostei + 0
04/01/2005
Marcos.rio
Abs
Gostei + 0
04/01/2005
Andremuller
Gostei + 0
04/01/2005
Adilsond
SELECT * FROM TABLEA A1, TABLEB B WHERE A1.COD_A = B.COD_A AND (A1.COD_A, A1.MES, A1.ANO) IN (SELECT A2.COD_A, A2.MES, A2.ANO FROM (SELECT A3.COD_A, A3.MES, A3.ANO, COUNT(*) FROM TABLEA A3 GROUP BY A3.COD_A, A3.MES, A3.ANO HAVING COUNT(*) > 1) A2)
Gostei + 0
05/01/2005
Marcos.rio
(Campo1, Campo2, Caqmpo3) In (Select ...... Etc...
Mesmo assim continuo com o meu sofrimento....
Obrigado pela ajuda !
Gostei + 0
05/01/2005
Andremuller
Eu criei uma base aqui e testei a sql que te mandei e ela funciona perfeitamentamente.
Basicamente ela faz o seguinte: selecione tudo de TableA e TableB onde mes e ano de TableA estejam duplicados.
Digamos que TableA tenha o seguinte
COD_A MES ANO 1 2 2000 2 2 2000 3 1 2000
e tableB
COD_B COD_A MES ANO 1 1 2 2000 2 1 2 2000 3 2 2 2000 4 3 2 2000
o resultado será de 3 registros da combinação de COD_A(1, 2) e COD_B(1,2,3).
Se a tua intensão é não repetir os COD_A então coloque um distinct na SQL não selecionado COD_B. Resolveu?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)