关于Access UPDATE中使用 DSUM的问题
有一个关于排名的应用, 参照网上其他人写的语句,我是想使用UPDATE和DSUM对排名进行更新,具体如下:
表名:Score_Rank
字段:Id,Name,Score,Rank
1 张三 89
2 李四 68
3 王五 79
4 刘二 79
5 赵七 88
单独使用如下语句查询没问题
SELECT Id,Name, Score, (SELECT IIF(ISNULL(SUM(1)), 1, SUM(1) + 1) FROM Score_Rank where Score > A.Score) AS Rank
FROM Score_Rank AS A
ORDER BY score DESC
1 张三 89 1
5 赵七 88 2
4 刘二 79 3
3 王五 79 3
2 李四 68 5
但想用如下语句更新就出问题了
UPDATE Score_Rank AS SR
SET SR.Rank = DSUM("B.Rank","(SELECT Id, Name, Score, (SELECT IIF(ISNULL(SUM(1)), 1, SUM(1) + 1) FROM Score_Rank where Score > A.Score) AS Rank
FROM Score_Rank AS A
ORDER BY score DESC) AS B","B.ID"= SR.ID);
提示“不能更新5个字段是因为类型转换失败,不能更新0个记录是因为键值冲突,不能更新0个记录是因为锁定冲突,不能更新0个记录是因为有效性规则冲突。”
请大家帮忙指点一下,thx!