Fórum Como não repetir registros com determinadas colunas duplicadas no SQL Server? #599565
07/01/2019
0
Bom dia a todos,
Gostaria de saber como fazer uma determinada query funcionar. Eu tenho uma tabela chamada tb_log_interacao, na qual tenho a seguinte query:
No meu caso específico, eu não posso repetir registros que tenham os camposid_postagem e id_usuario com o mesmo valor. por exemplo, se eu tiver o tipo id_postagem com valor 10 e o id_usuario com valor 2135 num registro, esses valores não podem se repetir. Tentei usar DISCTINT para resolver isso, mas ele acaba afetando os outros campos da coluna, o que não me interessa, pois os outros podem repetir. Somente esses dois acima citados é que não podem ser repetidos nos registros.
Alguém pode me ajudar com isso?
Gostaria de saber como fazer uma determinada query funcionar. Eu tenho uma tabela chamada tb_log_interacao, na qual tenho a seguinte query:
SELECT id, id_postagem, id_tipo_interacao, id_usuario, id_usuario_receptor, data_interacao FROM tb_log_interacao WHERE status = 1
No meu caso específico, eu não posso repetir registros que tenham os camposid_postagem e id_usuario com o mesmo valor. por exemplo, se eu tiver o tipo id_postagem com valor 10 e o id_usuario com valor 2135 num registro, esses valores não podem se repetir. Tentei usar DISCTINT para resolver isso, mas ele acaba afetando os outros campos da coluna, o que não me interessa, pois os outros podem repetir. Somente esses dois acima citados é que não podem ser repetidos nos registros.
Alguém pode me ajudar com isso?
César Leitão
Curtir tópico
+ 2
Responder
Post mais votado
07/01/2019
Um opção seria você criar um select com group by pelos campos id_postagem e id_usuario.
Criado esse select, a cada linha você pode chamar um select com TOP 1, trazendo apenas o primeiro processo que contém o id_postagem e o id_usuario daquela linha.
Segue um exemplo?
Criado esse select, a cada linha você pode chamar um select com TOP 1, trazendo apenas o primeiro processo que contém o id_postagem e o id_usuario daquela linha.
Segue um exemplo?
SELECT ( SELECT TOP 1 id, id_postagem, id_tipo_interacao, id_usuario, id_usuario_receptor, data_interacao FROM tb_log_interacao LogInt WHERE LogInt.id_postagem = id_postagem AND LogInt.id_usuario = id_usuario WHERE status = 1 ) FROM tb_log_interacao GROUP BY id_postagem,id_usuario WHERE status = 1
Tiago Souza
Responder
Gostei + 2
Mais Posts
08/01/2019
César Leitão
Muito obrigado pela ajuda Tiago.
Aproveitei e fiz umas adaptações na query porque acabei precisando!
Valeu fera!
Aproveitei e fiz umas adaptações na query porque acabei precisando!
Valeu fera!
Responder
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)