0

私たちの病院のシステムにはドキュメント用のテーブルがあり、ページも個別にリストされています。したがって、各ドキュメント/サブタイトル/DUID (ドキュメントの一意の ID) がすべてのページ (ページ 1、ページ 2、ページ 3) にリストされます。

ID             Global_ID            document                subtitle                       page   DUID
-------------- -------------------- ----------------------- ------------------------------ ------ -------------
1              11111                IMAGING REPORT          20120723 6400 CR               1      1.2.840..... 
2              22222222             RADIOLOGY               20110808 70012240000200 CH2V   1      1.2.840.111. 
2              22222222             RADIOLOGY               20110808 70012240000200 CH2V   1      1.2.840.222. 
3              333333               IMAGING REPORT          20120607 29006850002500 CH2V3  1      1.2.840..... 
4              44444444             RADIOLOGY               20110816 70012240000300 CH1V   1      1.2.840..... 
5              55555555             RADIOLOGY               20110817 70012240000400 CH1V   1      1.2.840..... 

例の ID#2 のような「繰り返し」を見つけようとしています... ID には、同じドキュメント/字幕の組み合わせの 2 つのコピー (それぞれに固有の DUID があります) があります。上記の結果を「ページ 1」に限定したことを覚えておいてください...しかし、結果セット全体が短くなるため、それで問題ありません。また、2 つの異なる ID のサブタイトルが一致する可能性があるため、単純なことはできないことにCOUNT(subtitle) > 1 注意してください。レコードをクリーンアップできるように、重複を見つけるのを手伝ってください!

4

3 に答える 3

1

これは動作します -

; cte AS(
    SELECT ID, Global_ID,DOCUMENT,subtitle, page, DUID, ROW_NUMBER() OVER (PARTITION BY ID, Global_ID,DOCUMENT,subtitle, page, DUID ORDER BY ID, Global_ID,DOCUMENT,subtitle, page, DUID DESC) AS row_cnt FROM table
)   
SELECT * FROM cte WHERE row_cnt > 1
于 2013-08-09T16:21:08.847 に答える
1

SQL Server 2005 以降の場合:

;WITH CTE AS
(
    SELECT  *,
            N=COUNT(*) OVER(PARTITION BY ID, Global_ID, document, subtitle)
    FROM YourTable
)
SELECT *
FROM CTE
WHERE N > 1
于 2013-08-09T16:16:50.133 に答える