Fórum listar dados com nome duplicados #394010

20/01/2011

0

Bom dia.
Pessoal, tenho um BD em Access e nele tenho uma tabela com as seguintes informações
id - N.A
assunto - Texto
data - Data/Hora
para - Texto

Fiz uma consulta num dbgrid para listar todas as informações dessa tabela, mas as informações do campo assunto podem se repetir várias vezes, então eu gostaria de listas no dbgrid só os dados cujos o campo [b]assunto[b] aparecam mais de uma vez.

Já tentei assim

SELECT COUNT(*),  assunto  FROM telemedicina

GROUP BY assunto

HAVING COUNT(*) > 1 



Só q dessa forma só aparece no grid o campo assunto, caso eu tente acrescentar os outros campos dá erro.
Alguém pode me ajudar ?
Vlw
Marcos Barbosa

Marcos Barbosa

Responder

Posts

20/01/2011

Marco Salles

bom para Sql que eu conheço é o Emerson ... Mas ele não apareceu , então vou palpitar Nao estaria faltando vc colocar os outros campos ???         select camposA,campoB,assunto,count(*) FROM telemedicina
    having count(*) > 1
    group by campoA,CampoB,assunto   é so um palpite
 
Responder

Gostei + 0

20/01/2011

Marcos Barbosa

Já tinha tentando assim também, mas ele dá erro de sintaxe na cláusula HAVING.
Responder

Gostei + 0

20/01/2011

Marcos Barbosa

Já tinha tentando assim também, mas ele dá erro de sintaxe na cláusula HAVING.

Oh, ñ sei se tem alguma coisa que influêncie, mas eu estou usando o componente ADOquery
Responder

Gostei + 0

20/01/2011

Leonardo Xavier

Dentro do próprio access tem uma opçao de fazer consulta, para mostrar dados duplicados. crie uma nova consulta e nas opções coloque assistente de consulta localizar duplicados. Prontinho você ja tem uma tabela com todos os dados duplicados. Abraços
Responder

Gostei + 0

20/01/2011

Marcos Barbosa

Se eu trocar a ordem ho HAVING  e coloca-lo no final não aparece mais erro algum, mas em contrapartida, ñ aparece mais nenhuma informação
SELECT Código, data, para, assunto, COUNT(*)  
FROM telemedicina
GROUP BY Código, data, para, assunto
HAVING COUNT(*) >1 

Responder

Gostei + 0

20/01/2011

Leonardo Xavier


já tentou isso?

Dentro do próprio access tem uma opçao de fazer consulta, para mostrar dados duplicados. crie uma nova consulta e nas opções coloque assistente de consulta localizar duplicados. Prontinho você ja tem uma tabela com todos os dados duplicados. Abraços


Responder

Gostei + 0

20/01/2011

Marcos Barbosa

Pessoal agradeço muito pela ajuda de todos, foram muito rápidos e atenciosos.
Consegui resolver da seguinte forma:
SELECT  t.* FROM telemedicina t
WHERE EXISTS(SELECT COUNT(*), x.assunto FROM telemedicina x
                 where x.assunto = t.assunto
                GROUP BY x.assunto
                HAVING COUNT(*) > 1 )
ORDER BY assunto, data


Tópido resolvido
Responder

Gostei + 0

20/01/2011

Leonardo Xavier

nao esqueça de colocar este tópico como concluído. Isso mantem o fórum organizado. Abraços
Responder

Gostei + 0

20/01/2011

Emerson Nascimento

não conheço ACCESS e não sei se ele suporta todos os comandos/sintaxes SQL...

de qualquer forma, vai uma tentativa:

SELECT *
FROM telemedicina
WHERE assunto IN
(SELECT assunto
 FROM telemedicina
 GROUP BY assunto
 HAVING COUNT(*) > 1)

 
Responder

Gostei + 0

20/01/2011

Marco Salles

Pessoal agradeço muito pela ajuda de todos, foram muito rápidos e atenciosos.
Consegui resolver da seguinte forma:
SELECT  t.* FROM telemedicina t
WHERE EXISTS(SELECT COUNT(*), x.assunto FROM telemedicina x
                 where x.assunto = t.assunto
                GROUP BY x.assunto
                HAVING COUNT(*) > 1 )
ORDER BY assunto, data


Tópido resolvido
  Perfeito .... Eu estava aqui quase conseguindo com o firebird, mas estava faltando duas coisas fundamentais   o Exists e a comparação  where x.assunto = t.assunto  , ai dava erro     Olha ai no Firebird  
select T.Country, T.Currency  from COUNTRY T
Where EXISTS (SELECT count(*),x.Currency FROM  COUNTRY X
Where X.CURRENCY = T.CURRENCY
GROUP BY X.CURRENCY
HAVING COUNT(*) > 1 )
ORDER BY T.Country

Obrigado Tb
Responder

Gostei + 0

21/01/2011

Marcos Barbosa

O bom é que ficará as duas formas aí para que quiser usar posteriormente.

Vlw.
Responder

Gostei + 0

21/01/2011

Marcos Barbosa

Galera, onde posso indicar que o tópico está concluído ?

O bom é que ficará as duas formas aí para que quiser usar posteriormente.

Vlw.
Responder

Gostei + 0

21/01/2011

Pjava

Já experimentou usar o distinct?

Select distinct.....
Responder

Gostei + 0

21/01/2011

Wilson Junior

No cabeçalho da última resposta tem sempre uma opção para modificar o status. Mas pode deiixar q concluo ele pra vc.

Espero ter colaborado.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar