我尝试对我的一个 SQL 项目使用条件聚合,但无法将所有数据放在同一行中。
所以基本上,我希望所有数据都出现在同一行(1 行)中,而不是像上面的屏幕截图那样出现在 2 行中。任何帮助将不胜感激
这是我当前的代码
SELECT
LTRIM(RTRIM(Patient.PLASTNAME))+', '+LTRIM(RTRIM(Patient.PFIRSTNAME)) As PatientFullName,
MAX(CASE WHEN DoseNumber = 1 THEN DoseNumber END) as DoseNumber1,
MAX(CASE WHEN DoseNumber = 1 THEN TimeOfEvent END) as DateAdministered1,
MAX(CASE WHEN DoseNumber = 1 THEN Manufacturer END) as ManufacturerDose1,
MAX(CASE WHEN DoseNumber = 1 THEN Lot END) as LotDose1,
CASE WHEN DoseNumber = 1 THEN Compliant END as Compliant1,
CASE WHEN DoseNumber = 1 THEN CompletedElsewhere END as CompletedElsewhere1,
MAX(CASE WHEN DoseNumber = 2 THEN DoseNumber END) as DoseNumber2,
MAX(CASE WHEN DoseNumber = 2 THEN TimeOfEvent END) as DateAdministered2,
MAX(CASE WHEN DoseNumber = 2 THEN Manufacturer END) as ManufacturerDose2,
MAX(CASE WHEN DoseNumber = 2 THEN Lot END) as LotDose2,
CASE WHEN DoseNumber = 2 THEN Compliant END as Compliant2,
CASE WHEN DoseNumber = 2 THEN CompletedElsewhere END as CompletedElsewhere2
FROM health_record
WHERE types.code = 'COVID'
Group By
Patient.PLASTNAME,
Patient.PFIRSTNAME,
emrsm_Immunizations.DoseNumber,
emrsm_Record.Compliant,
emrsm_Immunizations.CompletedElsewhere
期望的输出
全名 | DoseNumber1 | DateAdministered1 | ManufacturerDose1 | LotDose1 | Compliant1 | CompletedElsewhere1 | DoseNumber2 | DateAdministered2 | ManufacturerDose2 | LotDose2 | Compliant2 | CompletedElsewhere2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
凯莉、洛瑞 | 1 | 2021-01-11 | NULL | NULL | 1 | 1 | 2 | 2021-07-22 | PFR | EW0178 | 1 | 0 |