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 表)。对所有用户的代码列(用户表)求和。最后更新房屋表的 lstatus 列中的结果。
我的问题是:我需要重写不是对代码列求和的查询。相反,我想创建案例陈述。例如:
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。