*
我得到如下结果
PID
在这里重复,2 行显示 1 个患者 (john)
我只需要为患者姓名(约翰)显示 1 行,如果他在同一日期或任何其他日期多次访问,我必须为患者约翰显示一行。
*
我得到如下结果
PID
在这里重复,2 行显示 1 个患者 (john)
我只需要为患者姓名(约翰)显示 1 行,如果他在同一日期或任何其他日期多次访问,我必须为患者约翰显示一行。
显示每位患者一行 - 以及他/她的最后一次就诊日期:
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
@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
此查询选择有关至少有一次就诊的患者的信息。
使用下面将返回单行的查询..如果行的所有值都相同
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
我认为这会给你单行,试试这个
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
每个不同日期显示一名患者:
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;
我不明白你需要什么。也许
GROUP BY PID, Patient_ID, Patient_Name, Sex,
Patients_Birth_Date,MAX(Visit_Trans_ID),MAX(Visit_Date)