-1
我收到一個錯誤:'您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以找到在HAVING(SUM(CASE WHEN PTSD2E_1 IS NULL THEN 1 ELSE 0 END))+ SUM(CASE WHEN PTSD2E_2'at line 3')時嘗試運行此更新語句,如果有少於2個缺失值,則該語句嘗試使用總和線(如PTSD_Total)的結果更新表。該代碼在作爲SELECT運行時工作。PTSD_Total列作爲tinyint存在於表中值很小),這是目前用空值填充。在察覺我的錯誤認識任何幫助。使用sum和case不工作更新同一表
UPDATE mytablename
SET PTSD_Total = ((SUM(IFNULL(PTSD2E_1,0)))+(SUM(IFNULL(PTSD2E_2,0)))+
(SUM(IFNULL(PTSD2E_3,0)))+(SUM(IFNULL(PTSD2E_4,0)))+
(SUM(IFNULL(PTSD2E_5,0)))+(SUM(IFNULL(PTSD2E_6,0)))+
(SUM(IFNULL(PTSD2E_7,0)))+(SUM(IFNULL(PTSD2E_8,0)))+
(SUM(IFNULL(PTSD2E_9,0)))+(SUM(IFNULL(PTSD2E_10,0))))
HAVING (SUM(CASE WHEN PTSD2E_1 IS NULL THEN 1 ELSE 0 END)+SUM(CASE WHEN
PTSD2E_2 IS NULL THEN 1 ELSE 0 END)+SUM(CASE WHEN PTSD2E_3 IS NULL THEN 1
ELSE 0 END)+SUM(CASE WHEN PTSD2E_4 IS NULL THEN 1 ELSE 0 END)+SUM(CASE WHEN
PTSD2E_5 IS NULL THEN 1 ELSE 0 END)+SUM(CASE WHEN PTSD2E_6 IS NULL THEN 1
ELSE 0 END)+SUM(CASE WHEN PTSD2E_7 IS NULL THEN 1 ELSE 0 END)+SUM(CASE WHEN
PTSD2E_8 IS NULL THEN 1 ELSE 0 END)+SUM(CASE WHEN PTSD2E_9 IS NULL THEN 1
ELSE 0 END)+SUM(CASE WHEN PTSD2E_10 IS NULL THEN 1 ELSE 0 END)) < 2;