以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]update明细金额到主表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=195016)

--  作者:chnfo
--  发布时间:2025/2/16 22:31:00
--  [求助]update明细金额到主表
cmd.CommandText = "UPPDATE TbCorrect Set CV = ( Se1ect sum(BackV)   From TbCorrectD   Where TbCorrectD.CorrectID = \'xxx\'  ) where  id = \'xxx\'"
    cmd.ExecuteNonQuery

提示错误:操作必须使用一个可更新的查询

现在使用access做数据库


[此贴子已经被作者于2025/2/16 22:31:13编辑过]

--  作者:有点蓝
--  发布时间:2025/2/16 22:46:00
--  
UPDATE TbCorrect as a inner join (Select CorrectID,sum(BackV) as  合计  From TbCorrectD where  CorrectID = \'xxx\'  group by CorrectID) as b on a.id=b.CorrectID Set a.CV = b.合计 where  id = \'xxx\'
--  作者:chnfo
--  发布时间:2025/2/16 22:57:00
--  
还是不行哦,提示操作必须使用一个可更新的查询
upPdate TbCorrect as a inner join (Se1ect CorrectID,sum(BackV) as  XV  From TbCorrectD where  CorrectID = \'xxx\'  group by CorrectID) as b on a.id = b.CorrectID Set a.CV = b.XV where  a.id = \'xxx\'


这个在杂项>执行>SQL执行,运行还是会报错
[此贴子已经被作者于2025/2/16 23:04:17编辑过]

--  作者:有点蓝
--  发布时间:2025/2/16 23:03:00
--  
TbCorrect没有主键,或者是一个查询表
--  作者:chnfo
--  发布时间:2025/2/16 23:07:00
--  



图片点击可在新窗口打开查看不会啊,主表有ID的,它是一个数据表,不是查询表
明细表的ID是空值倒是真的,但主表的ID不是空值
图片点击可在新窗口打开查看
是不是跟数据库是access有关?
[此贴子已经被作者于2025/2/16 23:35:12编辑过]

--  作者:有点蓝
--  发布时间:2025/2/17 8:42:00
--  
有ID不等于有主键,检查主键:http://www.foxtable.com/webhelp/topics/1807.htm
--  作者:chnfo
--  发布时间:2025/2/17 10:11:00
--  
图片点击可在新窗口打开查看我把TbCorrect的ID列设为了主键,还是执行不了哦
依然报错为
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2025.1.3.1
错误所在事件:
详细错误信息:
操作必须使用一个可更新的查询。

cmd.CommandText = "upPdate TbCorrect as a inner join (Se1ect CorrectID,sum(BackV) as  合计  From TbCorrectD where  CorrectID = \'" & mainid & "\'  group by CorrectID) as b on a.id = b.CorrectID Set a.CV = b.合计 where  a.id = \'" & mainid & "\'"

[此贴子已经被作者于2025/2/17 10:14:01编辑过]

--  作者:有点蓝
--  发布时间:2025/2/17 11:03:00
--  
设置主键后保存一下,然后到后台数据库测试一下sql是否可以执行
--  作者:chnfo
--  发布时间:2025/2/17 11:11:00
--  
在access中也不可执行,提示错误是一样的
--  作者:有点蓝
--  发布时间:2025/2/17 11:26:00
--  
那就是不支持子查询。分开2次执行吧。先获取统计值,再更新