设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3068|回复: 8
打印 上一主题 下一主题

[查询] 更新查询怎么插入子查询?

[复制链接]
跳转到指定楼层
1#
发表于 2012-1-6 09:26:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有表如下:

[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")

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

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



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-1-6 09:29:50 | 只看该作者
UPDATE tblTest SET tblTest.[11] =tblTest.[11] +4
3#
 楼主| 发表于 2012-1-6 09:46:48 | 只看该作者
Henry D. Sy 发表于 2012-1-6 09:29
UPDATE tblTest SET tblTest.[11] =tblTest.[11] +4

如果记录数不确定呢?
4#
发表于 2012-1-6 09:48:33 | 只看该作者
jakyky 发表于 2012-1-6 09:46
如果记录数不确定呢?

UPDATE tblTest SET tblTest.[11] =tblTest.[11] +dcount("*","tblTest")
5#
 楼主| 发表于 2012-1-6 10:37:34 | 只看该作者
那这个报错“操作必须使用一个可更新的查询” 是怎么回事呢?

所以纠结这个,是因要把字段 [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")

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


6#
发表于 2012-1-6 10:47:35 | 只看该作者
同样的问题你重复发了3个贴子
而且不是在第一个帖子里,帮你解决了吗?
7#
 楼主| 发表于 2012-1-6 10:50:06 | 只看该作者
Henry D. Sy 发表于 2012-1-6 10:47
同样的问题你重复发了3个贴子
而且不是在第一个帖子里,帮你解决了吗?

同样的代码在追加查询中没问题,但是在更新查询中却报错,不知道为什么?
8#
发表于 2012-1-6 10:52:01 | 只看该作者
不是跟你说的很清楚了吗
9#
 楼主| 发表于 2012-1-6 12:56:22 | 只看该作者
可能是我没有说明白。
自己解决:原来Access update是不支持子查询的。

谢谢Henry了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 22:39 , Processed in 0.084265 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表