jel*_*llo 4 sql t-sql sql-server group-by
所以我得到了这个声明,这很好:
SELECT MAX(patient_history_date_bio) AS med_date, medication_name
FROM biological
WHERE patient_id = 12)
GROUP BY medication_name
Run Code Online (Sandbox Code Playgroud)
但是,我想也有相应的药物_dose.所以我输入了这个
SELECT MAX(patient_history_date_bio) AS med_date, medication_name, medication_dose
FROM biological
WHERE (patient_id = 12)
GROUP BY medication_name
Run Code Online (Sandbox Code Playgroud)
但是,它给我一个错误说:
"coumn'biimal.medication_dose'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中."
所以我尝试将GMB_dose添加到GROUP BY子句中,但是它给了我额外的行,我不想要.我想在我的桌子上获得每种药物的最新行.(最新行由max函数确定,获取最新日期).
我该如何解决这个问题?
使用:
SELECT b.medication_name,
b.patient_history_date_bio AS med_date,
b.medication_dose
FROM BIOLOGICAL b
JOIN (SELECT y.medication_name,
MAX(y.patient_history_date_bio) AS max_date
FROM BIOLOGICAL y
GROUP BY y.medication_name) x ON x.medication_name = b.medication_name
AND x.max_date = b.patient_history_date_bio
WHERE b.patient_id = ?
Run Code Online (Sandbox Code Playgroud)