|
本帖最后由 zyp 于 2011-3-14 21:46 编辑
一直用ADP, MDB忘得差不多了, 今天做一个更新查询,执行时提示"操作必须使用一个可更新的查询", 而这个查询在ADP中可以轻易做到的,在MDB中却不行, 真是百思不得其解.
背景是这样的, 表A是物料名称表, SL栏位用于记录该物料的累计出库数; 表B为出库记录, 一个物料有多次出库; 现在用查询C将同一款物料的出库数合计起来, 再用一个更新查询将合计值更新到物料名称表对应物料的SL栏位中
为了简化描术, 将表A的ID栏位值当做是物料, 而表B中的ID对应着表A的物料
我的表是这样的:
表:A
ID SL
1 0
2 0
3 0
表:B
自动编号 ID SL2
1 1 5
2 1 5
3 1 5
4 2 23
查询:C
SELECT id,sum(sl2) as hjs FROM B GROUP BY id
得到结果是:
ID hjs
1 15
2 23
我现在想将查询C的值更新到表A对应栏位中, 更新查询如下:
UPDATE A INNER JOIN C ON A.id=C.id SET A.SL=C.hjs
想得到结果是表A的数据如下:
ID SL
1 15
2 23
3 0
但运行这个更新查询出现"操作必须使用一个可更新的查询"的错误提示, 没法更新.
但如果我直接写: UPDATE A SET A.sl=0 这个更新查询又是可以执行的, 不知是不是因为查询C是不可更新的查询的缘故, 但是查询C只是用来取值, 并不是更新查询C的值.
在ADP中写法有所不同,应该是: UPDATE A SET A.sl=c.hjs FROM A INNER JOIN C ON A.id=C.id
在ADP中执行一直没有问题.
哪位朋友有解决过这个问题的, 请多多指教!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|