PHONE
大量のデータを取得し、単一の列( )の重複を見つけて、行全体を出力するクエリを作成しようとしています。私はデータのプールを4つの結果に絞り込むことに成功しました(これは正しいです)。現在、複製された行も表示しようとしているので、たとえば、次のようなものを見たいと思います。
+--------+-------+--------------+
| Name | Age | Phone |
| Abby | 20 | 123-456-7890 |
| Mike | 42 | 123-456-7890 |
| Abel | 32 | 123-555-0000 |
| John | 24 | 123-555-0000 |
+--------+-------+--------------+
しかし、私のクエリは次のように出力しています。
+--------+-------+--------------+
| Name | Age | Phone |
| Abby | 20 | 123-456-7890 |
| Abel | 32 | 123-555-0000 |
+--------+-------+--------------+
マイクとジョン、アビーとアベルを表示するにはどうすればよいですか?
現在の私のクエリ:
SELECT DISTINCT C.ACCOUNT,
C.ADATE,
C.ATIME,
C.PHONE,
C.PATIENTID,
C.RN
FROM (SELECT A.ACCOUNT,
A.ADATE,
A.ATIME,
M.HPHONE,
Row_number()
OVER (
PARTITION BY M.HPHONE
ORDER BY M.HPHONE) AS RN
FROM MWAPPTS A
JOIN CLMASTER M
ON A.ACCOUNT = M.ACCOUNT
WHERE ( ADATE >= '2012-11-30 00:00:00.000'
AND ADATE <= '2012-12-03 00:00:00.000' )
AND DEPARTMENT LIKE '%bowie%'
AND A.USERFLAG IN ( 'U' )) RESULTS(ACCOUNT, ADATE, ATIME, PHONE, RN)
JOIN (SELECT A.ACCOUNT,
A.ADATE,
A.ATIME,
M.HPHONE,
A.PATIENTID,
Row_number()
OVER (
PARTITION BY M.HPHONE
ORDER BY M.HPHONE) AS RN
FROM MWAPPTS A
JOIN CLMASTER M
ON A.ACCOUNT = M.ACCOUNT
WHERE ( ADATE >= '2012-11-30 00:00:00.000'
AND ADATE <= '2012-12-03 00:00:00.000' )
AND DEPARTMENT LIKE '%bowie%'
AND A.USERFLAG IN ( 'U' )) C(ACCOUNT, ADATE, ATIME, PHONE, PATIENTID, RN)
ON RESULTS.ACCOUNT = C.ACCOUNT
WHERE C.RN <> 1
ORDER BY C.PHONE,
C.RN
提供できる支援を事前に感謝します。