我得到的結果如下圖所示
PID
這裏重複,2行顯示1例患者(約翰)
我不得不只顯示1行爲patient_name(約翰) 我必須顯示患者約翰一行,如果他有同一個日期或任何其他日期多次訪問..
我得到的結果如下圖所示
PID
這裏重複,2行顯示1例患者(約翰)
我不得不只顯示1行爲patient_name(約翰) 我必須顯示患者約翰一行,如果他有同一個日期或任何其他日期多次訪問..
顯示一行每名患者 - 和他/她上次訪問日期:
SELECT
Patient_Master.PID,
Patient_Master.Patient_ID,
Patient_Master.Patient_Name,
Patient_Master.Sex,
Patient_Master.Patients_Birth_Date,
Patient_Last_Visit.Visit_Date
FROM
Patient_Master
LEFT JOIN
(SELECT
PID,
MAX(Visit_Date) AS Visit_Date
FROM
Patient_Visit
GROUP BY
PID
) AS Patient_Last_Visit
ON Patient_Master.PID = Patient_Last_Visit.PID
ORDER BY
Patient_Master.Patient_Name
謝謝ypercube –
我不明白你需要什麼。也許
GROUP BY PID, Patient_ID, Patient_Name, Sex,
Patients_Birth_Date,MAX(Visit_Trans_ID),MAX(Visit_Date)
如果患者john在同一日期或任何其他日期有多次訪問,我必須顯示一行。 –
@nikhil你能更具體一點嗎?
如果您想爲患者提供一行,您爲什麼要加入表格?
我認爲你應該做從Patient_Master列和一些匯聚組Patient_Visit
編輯: 這應該工作
SELECT
Patient_Master.PID,
Patient_Master.Patient_ID,
Patient_Master.Patient_Name,
Patient_Master.Sex,
Patient_Master.Patients_Birth_Date
FROM
Patient_Master
INNER JOIN
Patient_Visit ON Patient_Master.PID = Patient_Visit.PID
GROUP BY
Patient_Master.PID,
Patient_Master.Patient_ID,
Patient_Master.Patient_Name,
Patient_Master.Sex,
Patient_Master.Patients_Birth_Date
ORDER BY
Patient_Master.Patient_Name
此查詢選擇有關患者進行了至少一次信息。
:i必須爲病人約翰顯示一行,如果他在同一日期或任何其他日期有多次訪問。 –
使用下面的查詢將返回單一row..if所有值行是相同
SELECT
Patient_Master.PID,
Patient_Master.Patient_ID,
Patient_Master.Patient_Name,
Patient_Master.Sex,
Patient_Master.Patients_Birth_Date,
Patient_Visit.Visit_Date
FROM
Patient_Master
LEFT JOIN
Patient_Visit ON Patient_Master.PID = Patient_Visit.PID
Group by
Patient_Master.PID,
Patient_Master.Patient_ID,
Patient_Master.Patient_Name,
Patient_Master.Sex,
Patient_Master.Patients_Birth_Date,
Patient_Visit.Visit_Date
ORDER BY
Patient_Master.Patient_Name
使用上面的查詢重新打開的行獲取一個PID多次訪問 –
這是真的,但您沒有在您的選擇查詢中選擇Visit_Trans_ID。所以我認爲你不介意訪問transid。如果你的訪問日期不同,那麼你可以得到2行......但在上面的查詢中你的訪問日期是相同的。所以它是有道理的,單個用戶多次訪問同一天,然後有單行..但如果他訪問不同的日子,然後有不同的行..我的解決方案是工作,如果你改變訪問日期。 –
使用Visit_Trans_ID我可以做什麼..任何想法 –
我覺得這會給你單列,試試這個
SELECT
Patient_Master.PID,
Patient_Master.Patient_ID,
Patient_Master.Patient_Name,
Patient_Master.Sex,
Patient_Master.Patients_Birth_Date,
Patient_Visit.Visit_Date
FROM
Patient_Master
INNER JOIN
Patient_Visit ON Patient_Master.PID = Patient_Visit.PID
GROUP BY Patient_Master.PID
ORDER BY
Patient_Master.Patient_Name
錯誤:列'Patient_Master.Patient_ID'在選擇中無效列表,因爲它不包含在聚合函數或GROUP BY子句中。 –
顯示每個不同的日期一個病人:
SELECT M.PID,
M.Patient_ID,
M.Patient_Name,
M.Sex,
M.Patients_Birth_Date,
A.Visit_Date
FROM Patient_Master AS M
OUTER APPLY
(
SELECT DISTINCT V.Visit_Date
FROM Patient_Visit AS V
WHERE V.PID = M.Pid
) AS A;
顯示一個病人和最近的日期:
SELECT M.PID,
M.Patient_ID,
M.Patient_Name,
M.Sex,
M.Patients_Birth_Date,
A.Visit_Date
FROM Patient_Master AS M
OUTER APPLY
(
SELECT MAX(V.Visit_Date) AS Visit_Date
FROM Patient_Visit AS V
WHERE V.PID = M.Pid
) AS A;
2人次,2行。爲什麼它會不同?你有'從Patient_Master左邊加入Patient_Visit' –
我必須只顯示1行,以便對患者進行多次訪問 –
因此,您不希望每個訪問都看到每個訪問,但只有一個(哪個是最後一個?)? –