选择facilities.facility_name,
当( COUNT(compliances_master.compliance_phase_name =‘产前护理-1’)然后compliances_master.compliance_phase_name=‘产前护理-1’结束时(compliances_master.compliance_phase_name =‘产前护理-1’)其他'0‘结束为ANS_1,当(compliances_master.compliance_phase_name =’产前护理-2‘),则COUNT(compliances_master.compliance_phase_name =’产前护理-2‘结束为ANS_2,当( COUNT(compliances_master.compliance_phase_name =‘产前护理-3’)结束时(compliances_master.compliance_phase_name =‘产前护理-3’),其他'0‘结束为ANS_3,当(compliances_master.compliance_phase_name =’产前护理-4‘),则COUNT(compliances_master.compliance_phase_name) = '0’结束为ANS_4,COUNT(compliances_master.compliance_phase_name)作为ANC_total从compliance_visits
compliance_visits.facility_id = facilities.facility_id内连接compliances_master ON compliance_visits.compliance_id = compliances_master.compliance_id GROUP BY (facilities.facility_name)
发布于 2022-09-29 13:21:46
请检查一下这个,让我知道它是否工作。
\DB::('compliance_visits')->select('facilities.facility_name')
->addSelect(\DB::raw("CASE WHEN (compliances_master.compliance_phase_name = 'Antenatal Care-1') THEN COUNT(compliances_master.compliance_phase_name = 'Antenatal Care-1' ) ELSE '0' END AS ANS_1, CASE WHEN (compliances_master.compliance_phase_name = 'Antenatal Care-2') THEN COUNT(compliances_master.compliance_phase_name = 'Antenatal Care-2' ) ELSE '0' END AS ANS_2 , CASE WHEN (compliances_master.compliance_phase_name = 'Antenatal Care-3') THEN COUNT(compliances_master.compliance_phase_name = 'Antenatal Care-3' ) ELSE '0' END AS ANS_3, CASE WHEN (compliances_master.compliance_phase_name = 'Antenatal Care-4') THEN COUNT(compliances_master.compliance_phase_name = 'Antenatal Care-4' ) ELSE '0' END AS ANS_4, COUNT(compliances_master.compliance_phase_name) AS ANC_total"))
->join('facilities','facilities.facility_id','compliance_visits.facility_id')
->join('compliances_master','compliances_master.compliance_id','compliance_visits.compliance_id')
->groupBy('facilities.facility_name');https://stackoverflow.com/questions/73895673
复制相似问题