两个表的超作碰到了点问题
我有两个表:一个是“用户信息表”还有一个是“论坛的主题表”
我主要是要实现用户发布的提问帖(用户会设置一定量的金币)超过15天还没解决(即金币还没给予任何人,可能出现故意不给分的情况)问题的用户自动扣除2倍金币。
例如用户表有以下字段:
id
bbsmoney (金币数)
主题表如下:
id
rewardprice (提问时设置的金币)
rewardok (是否解决,如果是1表示已经解决问题,并且已给分)
我用以下语句可以选择出符合上面情况的主题表记录
SELECT id, rewardprice, userid FROM bbs WHERE (rewardprice > 0) AND (rewardok = 0) AND (intertime > CONVERT(char(10), GETDATE() - 15, 120))
不知道怎么对member表进行扣分处理(一个用户可能提了好几个问题,有可能一次处理中一个用户会有好几条符合惩罚的记录)
备注:对member表的扣分是rewardprice*2
[解决办法]
update a
set bbsmoney=a.bbsmoney-t.k
from member a,(
SELECT userid,sum(rewardprice*2) as k
FROM bbs WHERE (rewardprice > 0) AND (rewardok = 0) AND (intertime > CONVERT(char(10), GETDATE() - 15, 120))
group by userid
) as t
where a.id=t.userid
[解决办法]
update a set bbsmoney= a.bbsmoney - 2 * (select sum(b.rewardprice) from bbs b where
a.id=b.id and (rewardprice > 0) AND (rewardok = 0) AND (intertime >
CONVERT(char(10), GETDATE() - 15, 120))