2017-04-19 85 views
-1

我試圖拉起所有患者記錄(沒有重複)。在我的數據庫中,所有患者都有多個訪問ID和多個訪問日期。從有多個事件的表中獲取唯一記錄

我已經試過這一個:

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

你有問題要問?樣本數據,期望的結果和適當的數據庫標籤都很有幫助。 –

+0

如果您只需要不同的患者數據,只需從您選擇的不同語句中刪除這些列。即「從患者身上選擇不同的姓名,姓氏,姓氏」。例子是必要的。 – 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