2016-07-04 2 views
0

SQL Server DB에서 중복을 찾으려면 아래 스크립트를 참조하십시오. 더 깨끗한 방법이 있습니까?Uisng이 sql에 중복 된 것을 찾으려면 더 깨끗한 방법이 있습니까?

select itemnum 
from matusetrans a 
where exists (select null 
       from matusetrans b 
       where a.itemnum = b.itemnum 
       and a.actualdate = b.actualdate 
       and a.matusetransid != b.matusetransid 
       and (a.rotassetnum = b.rotassetnum 
        or (a.rotassetnum is null and b.rotassetnum is null))  
       and a.quantity = b.quantity) 
group by itemnum 
+0

명확하게 "중복"를 정의하십시오 수 있습니다. 행의 모든 ​​열이 일치하는 두 개의 레코드를 말하는 것입니까? – Mfusiki

+0

안녕 Mfusiki, 예 코드 내에서 기준이 일치하는 곳에서 중복됩니다. –

+0

이 스레드를 참조하십시오 : http://stackoverflow.com/questions/2594829/finding-duplicate-values-in-a-sql 표 – Mfusiki

답변

0

또 다른 가능성 (그러나 neccessarily "청소기")

WITH cte AS(
    SELECT columns, ROW_NUMBER() OVER (PARTITION BY columns ORDER by columns) AS RowIdx 
    FROM matusetrans 
    GROUP BY columns 
) 
SELECT * 
    FROM cte 
    WHERE RowIdx > 1 
1

당신은 시도 할 수 :

SELECT itemnum 
FROM matusetrans 
GROUP BY [ColumnNames] 
HAVING 
COUNT(*) > 1 
1

당신이 테이블에 itemNum이 중복 찾으려면 가정하면,이 모든 경우 별개로 결과를 제공 할 수 있습니다 HAVING COUNT(*) > 1를 사용하여 쿼리

SELECT itemnum 
FROM matusetrans 
GROUP BY [ItemNum] 
HAVING COUNT(ItemNum) > 1 

아래 사용하세요 일반적으로 레코드마다 달라지는 order datetime과 같은 Datetime 열이 있습니다.

감사합니다, 스리

관련 문제