我需要幫助來為下面的輸出創建查詢。正如您在下面的資料集中看到的那樣,我希望將患者記錄放在一行中,其中包含所有詳細資訊

例如,Shahin Adam 只需要 1 條記錄將 Dose Number 1 和 Dose Number 2 的詳細資訊與每次劑量的日期相結合
期望的輸出

謝謝您的幫助
uj5u.com熱心網友回復:
我想你只想要條件聚合:
select lastname, firstname,
max(case when dosenumber = 1 then dosenumber end) as dosenumber_1,
max(case when dosenumber = 1 then timeofevent end) as timeofevent_1,
max(case when dosenumber = 2 then dosenumber end) as dosenumber_2,
max(case when dosenumber = 2 then timeofevent end) as timeofevent_2
from t
group by lastname, firstname;
uj5u.com熱心網友回復:
根據所需的輸出結果部分,僅顯示 2 個名字以 A 開頭的記錄。這就是此處啟用 where 子句的原因。如果所有患者資訊都需要,則禁用 where 子句。
SELECT PatientLastName, PatientFirstName
, MAX(CASE WHEN DoseNumber = 1 THEN DoseNumber ELSE NULL END) DoseNumber1
, MAX(CASE WHEN DoseNumber = 1 THEN TimeOfEvent ELSE NULL END) TimeOfEvent1
, MAX(CASE WHEN DoseNumber = 2 THEN DoseNumber ELSE NULL END) DoseNumber2
, MAX(CASE WHEN DoseNumber = 2 THEN TimeOfEvent ELSE NULL END) TimeOfEvent2
FROM table_name
WHERE PatientFirstName like 'A%'
GROUP BY PatientLastName, PatientFirstName
ORDER BY PatientFirstName;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/415085.html
標籤:
