Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Tenho uma dúvida relacionada a identificação de registros duplicados no SQL.
Tenho seis campos específicos da minha tabela que necessito saber se possuem itens duplicados no banco e que esses itens que são duplicados sejam mostrados num campo ao lado, onde mostre a quantidade de ocorrências para aquele registro. Para isso, editei o arquivo txt antes de importá-lo para a tabela, dessa forma replicando alguns registros.
Os campos são:
-----------------------------------------------------------------------------------------------------------------------------
CONTA | MONTANTE_MOEDA | CODIGO_DC | DATA_LCTO | NUM_DOC_CONTAB | TEXTO_ITEM
-----------------------------------------------------------------------------------------------------------------------------
Para o campo ser considerado duplicado preciso que todos esses campos sejam iguais.
A procedure que desenvolvi é essa:
USE [JET]
GO
/**** Object: StoredProcedure [dbo].[PAD01_LANC_DUPLICADOS] Script Date: 07/05/2013 16:48:07 ****/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[PAD01_LANC_DUPLICADOS]
@CONTA varchar(50),
@MONTANTE_MOEDA float,
@CODIGO_DC varchar(50),
@DATA_LCTO varchar(20),
@NUM_DOC_CONTAB varchar(50),
@TEXTO_ITEM varchar(150)
AS
BEGIN
SELECT ([CONTA]) AS [CONTA],
([MONTANTE_MOEDA]) AS [MONTANTE_MOEDA],
([CODIGO_DC]) AS [CODIGO_DC],
([DATA_LCTO]) AS [DATA_LCTO],
([NUM_DOC_CONTAB]) AS [NUM_DOC_CONTAB],
([TEXTO_ITEM]) AS [TEXTO_ITEM], Count([CONTA]) AS RESULT_PAD01GROUP BY [CONTA],
[MONTANTE_MOEDA],
[CODIGO_DC],
[DATA_LCTO],
[NUM_DOC_CONTAB],
[TEXTO_ITEM]
HAVING (((Count([Conta]))>1) AND ((Count([TEXTO_ITEM]))>1));
END
Porém, o resultado está trazendo todos os registros que contém a conta e o texto_item duplicados, pois esses foram os campos especificados na query.
Se alguém puder, me ajudar. Obrigado
Carregando comentários...