SQL 中的条件聚合问题

时间:2021-07-29 00:01:46

标签: sql sql-server-2008 conditional-statements aggregation

我尝试对我的一个 SQL 项目使用条件聚合,但无法将所有数据放在同一行中。

SQLData

所以基本上,我希望所有数据都出现在同一行(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

0 个答案:

没有答案
相关问题