To resolve the issue of a single subquery returning multiple rows, you can use the IN operator instead of the equal (=) operator.

Here is the updated SQL query:

UPDATE SYSMN.SYS_SERVICE_ITEM_DICT ssi SET ssi.bill_dept = '0' WHERE ssi.ITEM_ID IN ( SELECT a.clinic_item_id FROM mdm.mdm_clinic_item_and_dept a LEFT JOIN mdm.mdm_clinic_item ci ON ci.CLINIC_DIC_ID = a.CLINIC_ITEM_ID AND ci.AUDIT_STATUS = '1' LEFT JOIN mdm.sys_dept b ON a.dept_id = b.dept_id AND b.audit_status = '1' LEFT JOIN mdm.sys_hospital_park c ON a.corp_code = c.park_id AND c.audit_status = '1' LEFT JOIN mdm.mdm_standard_dictionary_detail d ON a.check_kinds = d.dict_value_id AND d.audit_status = '1' LEFT JOIN mdm.mdm_standard_dictionary_detail e ON a.check_kinds_sub = e.dict_value_id AND e.audit_status = '1' WHERE a.audit_status = '1' )

By using the IN operator, the subquery will return multiple values and the main query will update all the matching rows in the SYSMN.SYS_SERVICE_ITEM_DICT table

update SYSMNSYS_SERVICE_ITEM_DICT ssi SET ssibill_dept = 0 where ssiITEM_ID = SELECT aclinic_item_id FROM mdmmdm_clinic_item_and_dept a left join mdmmdm_clinic_item ci on ciCLINIC_DI

原文地址: http://www.cveoy.top/t/topic/iSIU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录