2017-04-19 9 views
-1

私はすべての患者の記録を(重複なしに)プルしようとしています。私のデータベースには、すべての患者が複数の訪問IDと複数の訪問日を持っています。複数の出現を持つテーブルからユニークなレコードを取得する

私はこの1つを試してみました:

SELECT DISTINCT * 
FROM PatientVisit 
WHERE Visit IN (SELECT MIN(Visit) FROM PatientVisit GROUP BY PatientProfileId) 
+3

質問がありますか?サンプルデータ、望ましい結果、適切なデータベースタグが役立ちます。 –

+0

患者データを区別したい場合は、選択した別のステートメントからそれらの列を削除してください。すなわち、「別個のpatientid、firstname、lastname from patientvisit」を選択する。例は必須です。 – Aron

答えて

0

はこれを試してみてください。

SELECT 
    DISTINCT VisitMain.PatientID 
    ,MaxVisit.FirstVisit 
    ,MinVisit.LastVisit 
FROM 
    PatientVisit VisitMain (NOLOCK) 
LEFT JOIN 
    (SELECT 
     PatientID,FirstVisit = MAX(CONVERT(DATETIME,Visit)) 
    FROM 
     PatientVisit (NOLOCK) 
    GROUP BY 
     PatientID) MaxVisit 
ON VisitMain.PatientID = MaxVisit.PatientID 
LEFT JOIN 
    (SELECT 
     PatientID,LastVisit = MIN(CONVERT(DATETIME,Visit)) 
    FROM 
     PatientVisit (NOLOCK) 
    GROUP BY 
     PatientID) MinVisit 
ON VisitMain.PatientID = MinVisit.PatientID 
関連する問題