Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求教,不知道该怎么办了,初学者,谢谢大家协助指导

倪强  发表于:2012-04-28 14:41:53  
复制

我有二个表,汇总统计

 

汇总统计

技术部    后勤部    市场部

100        200     300

销售出库数据

部门                     产品             销售原始金额

城区技术服务部库        A4复印纸                100.00

市场一部                  圆珠笔                  5.00

后勤部                    计算器                 15.00

市场二部                  碳素笔                  8.00

城区技术服务部库          保温杯                 22.00

 

我想将销售出库数据的销售原始金额进行统计后更新至汇总统计,汇总统计的技术部=销售出库数据中城区技术服务部库的销售原始金额累加数据,后勤部=销售出库数据中后勤部的销售原始金额累加数据,市场部=销售出库数据中市场一部+市场二部的销售原始金额累加数据

 

请问以下语句能在ACCESS2007中运行吗?我的总提示操作必须使用一个可更新的查询

UPDATE 汇总统计 SET 汇总统计.技术部销售额 = (SELECT round(SUM(销售出库数据.销售原始金额),2) AS 金额统计 FROM 销售出库数据  where 销售出库数据.仓库='城区技术服务部库')

 

Top
纵云梯 发表于:2012-04-28 22:26:49

朋友,如果你想修改某个带子查询的查询,那么里面的子查询只能用于查询的条件之用。如果子查询要用于作为实体(显示的字段),那么改查询就不能进行任何更新操作(如:新增、修改、删除等),而你的更新查询里要求一个子查询作为修改的来源,即已用作实体之用,所以就出现“操作必须使用一个可更新的查询”的报错提示。说白了更新查询里不允许用子查询所谓修改来源(作为查询条件是可以的),这个问题跟你用的Access版本毫无关系!你的查询建议改为:

UPDATE 汇总统计 SET 汇总统计.技术部销售额 = Round(DSum("销售原始金额","销售出库数据","仓库='城区技术服务部库'),2)

如果你要处理的是成千上万的数据量就不建议用以上方法,只能另辟蹊径了。

这里有类似的个案,对你应该有一点参考价值:http://www.accessoft.com/bbs/showtopic.asp?Id=15337



总记录:1篇  页次:1/1 9 1 :