SOP 애플리케이션이 매우 복잡해졌으며 문서 관리 시스템에 수천 개의 중복 문서가 생겼습니다.SQL 서버에서 중복 행을 업데이트하지만 원본은 그대로 둘 수 있습니까?
SELECT
[INVOICE_NO], COUNT(*)
FROM
[dwdata].[dbo].[INVOICES]
GROUP BY
[INVOICE_NO]
HAVING
COUNT(*) > 1
은 수천 개의 행을 생성합니다. 각 인보이스는 한 번만 저장해야합니다.
INVOICE_NO | COUNT(*)
2338508 | 2
2398800 | 3
2273807 | 2
2280570 | 4
각 행은 DWSTOREDATETIME
입니다. 예 : 내가하고 싶은 것은 갱신 WORKSORDER
가 중복 행에
SELECT
[INVOICE_NO], [WORKSORDER], [DWSTOREDATETIME]
FROM
[dwdata].[dbo].[INVOICES]
WHERE
[INVOICE_NO] = 2338508
2338508 | 1571105 | 2015-11-16 13:52:41.910
2338508 | 1571105 | 2015-10-27 07:50:59.970
그러한 내가 존재하지 않는 알고 999999
로 이루어져 뭔가 (가장 오래된를 떠나). 그런 다음 문서 관리 시스템 삭제 워크 플로 모듈을 사용하여 삭제할 수 있습니다.
'SET WORKSORDER = ROW_NUMBER() (INVOICE_NO ORDER BY DWSTOREDATETIME BY PARTITION)'그때,/CTE를 하위 쿼리 업데이트 할 RN했습니다. –