以文本方式查看主题 - 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不是空值 是不是跟数据库是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 -- 依然报错为 .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次执行吧。先获取统计值,再更新 |