I have 2 tables, KPIs_AdminStaff and KPIs_AdminStaff_Scores. I want to update one column (Objective_Score) in the first one using data from multiple columns (OBJECTIVE_ID_1, OBJECTIVE_ID_2,....) in the second one . The conditions are: KPIs_AdminStaff.EMPLOYEE_NUMBER = KPIs_AdminStaff_Scores.ID and Admin.OBJECTIVE_ID = (2352, 2355, 2401,2402,2409) respectively.
When I apply the below query it only updates KPIs_AdminStaff_Scores.ID = 2409
This is the code I tried based on this solution: Update table values from another table with the same user name
UPDATE KPIs_AdminStaff
SET OBJECTIVE_SCORE =
(
SELECT OBJECTIVE_ID_1
FROM KPIs_AdminStaff_Scores
WHERE KPIs_AdminStaff.OBJECTIVE_ID = 2352
AND KPIs_AdminStaff.EMPLOYEE_NUMBER = KPIs_AdminStaff_Scores.ID
)
,
OBJECTIVE_SCORE =
(
SELECT OBJECTIVE_ID_2
FROM KPIs_AdminStaff_Scores
WHERE KPIs_AdminStaff.OBJECTIVE_ID = 2355
AND KPIs_AdminStaff.EMPLOYEE_NUMBER = KPIs_AdminStaff_Scores.ID
)
,
OBJECTIVE_SCORE =
(
SELECT OBJECTIVE_ID_3
FROM KPIs_AdminStaff_Scores
WHERE KPIs_AdminStaff.OBJECTIVE_ID = 2401
AND KPIs_AdminStaff.EMPLOYEE_NUMBER = KPIs_AdminStaff_Scores.ID
)
,
OBJECTIVE_SCORE =
(
SELECT OBJECTIVE_ID_4
FROM KPIs_AdminStaff_Scores
WHERE KPIs_AdminStaff.OBJECTIVE_ID = 2402
AND KPIs_AdminStaff.EMPLOYEE_NUMBER = KPIs_AdminStaff_Scores.ID
)
,
OBJECTIVE_SCORE =
(
SELECT OBJECTIVE_ID_5
FROM KPIs_AdminStaff_Scores
WHERE KPIs_AdminStaff.OBJECTIVE_ID = 2409
AND KPIs_AdminStaff.EMPLOYEE_NUMBER = KPIs_AdminStaff_Scores.ID
)
WHERE
EXISTS
(
SELECT *
FROM KPIs_AdminStaff_Scores
WHERE KPIs_AdminStaff.EMPLOYEE_NUMBER = KPIs_AdminStaff_Scores.ID
)
;