UPDATE Houses
SET lStatus = U.codesum
FROM Houses H
JOIN (SELECT ref, SUM(code) AS codesum
FROM Users
GROUP BY ref) AS U ON U.ref = H.ref
上記のコードは、すべての家 (Houses テーブル) のすべてのユーザーを取得します。すべてのユーザーのコード列 (Users テーブル) を合計します。最後に、houses テーブルの lstatus 列の結果を更新します。
私の質問は次のとおりです。コード列を合計しないクエリを書き直す必要があります。むしろ、case ステートメントを作成したいと思います。例えば:
tempvar = 0 //local variable might be required
For each user {
If code == 1 then tempvar += 5
else if code == 2 then tempvar += 10
etc
tempvar = 0;
}
各家のすべてのユーザーをループしたら、lStatus = tempvar を設定できます。次に、tempvar を次の家のために 0 にリセットする必要があります。