Office中国论坛/Access中国论坛

标题: 更新查询怎么插入子查询? [打印本页]

作者: jakyky    时间: 2012-1-6 09:26
标题: 更新查询怎么插入子查询?
有表如下:

[tblTest]
ID        11          22
===============
1         101        0.10
2         102        0.70
3         103        0.45
4         104        0.91

现在想把字段 [11] 更新如下:

[tblTest]
ID           11                     22
===============
1     105           0.10
2            106           0.70
3            107           0.45
4            108           0.91

更新查询SQL如下:

UPDATE tblTest SET tblTest.[11] = (SELECT count(*)
FROM [tblTest] as b
WHERE b.[11]<=[tblTest].[11])+DMax("[11]","tblTest")

报错
“操作必须使用一个可更新的查询”

请问各位大侠问题出在哪里?
谢谢了。




作者: Henry D. Sy    时间: 2012-1-6 09:29
UPDATE tblTest SET tblTest.[11] =tblTest.[11] +4
作者: jakyky    时间: 2012-1-6 09:46
Henry D. Sy 发表于 2012-1-6 09:29
UPDATE tblTest SET tblTest.[11] =tblTest.[11] +4

如果记录数不确定呢?
作者: Henry D. Sy    时间: 2012-1-6 09:48
jakyky 发表于 2012-1-6 09:46
如果记录数不确定呢?

UPDATE tblTest SET tblTest.[11] =tblTest.[11] +dcount("*","tblTest")
作者: jakyky    时间: 2012-1-6 10:37
那这个报错“操作必须使用一个可更新的查询” 是怎么回事呢?

所以纠结这个,是因要把字段 [11] 接在另一个表 [tblAnother].[33] 最大值后面,并且 [tblAnother].[33] 不连号,例如:

[tblTest]
ID   11             22
===============
1             101          0.10
2             103          0.70
3             116          0.45
4             117          0.91


[tblAnother]
ID   33             44
===============
1           108          0.10
2           109          0.70
3           110          0.45
4           111          0.91

现在想把字段 [11] 更新如下:

[tblTest]
ID               11                                 22
===============
1          112           0.10
2                 113           0.70
3                 114           0.45
4                 115           0.91

更新查询SQL如下:

UPDATE tblTest SET tblTest.[11] = (SELECT count(*)
FROM [tblTest] as b
WHERE b.[11]<=[tblTest].[11])+DMax("[33]","tblAnother")

这段代码到底错在哪里呢?



作者: Henry D. Sy    时间: 2012-1-6 10:47
同样的问题你重复发了3个贴子
而且不是在第一个帖子里,帮你解决了吗?
作者: jakyky    时间: 2012-1-6 10:50
Henry D. Sy 发表于 2012-1-6 10:47
同样的问题你重复发了3个贴子
而且不是在第一个帖子里,帮你解决了吗?

同样的代码在追加查询中没问题,但是在更新查询中却报错,不知道为什么?
作者: Henry D. Sy    时间: 2012-1-6 10:52
不是跟你说的很清楚了吗
作者: jakyky    时间: 2012-1-6 12:56
可能是我没有说明白。
自己解决:原来Access update是不支持子查询的。

谢谢Henry了。





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3