运行环境  ACCESS 2003update gdzckp0809 set zcyz=(select sum(cgyz) as 汇总
from gdzckp0809 as a
where a.zclb=a.zclb 
group by zclb
)
where kpbh='SS-08100'
以上的 SQL 代码执行时提示"操作必须使用一个可更新的查询",这是为什么呢?
单独执行中间那段 select 语句执行正确,但加上 update 后,就出现这样的提示了,郁闷,急呀,帮忙

解决方案 »

  1.   

    问题补充:    应该不是读写权限问题,因为单独使用 update gdzckp0809 set zcyz=1000 这条语句更新成本,但使用子查询后就出现如上提示,
      

  2.   

    --try
    update gdzckp0809 set zcyz=t.cnt from (select sum(cgyz)cnt 
    from gdzckp0809 group by zclb)t where gdzckp0809.zclb=t.zclb
      

  3.   

    update gdzckp0809 set zcyz=(
    select sum(cgyz) as 汇总
    from gdzckp0809
    where zclb=a.zclb 
    group by zclb
    ) from gdzckp0809 a
    where kpbh='SS-08100'
      

  4.   


    update gdzckp0809 
    set zcyz=t.汇总
    from
    (
      select sum(cgyz) as 汇总
      from gdzckp0809
      where zclb=gdzckp0809.zclb 
      group by zclb
    ) t
    where gdzckp0809.kpbh='SS-08100'
      

  5.   


        ACCESS 提示:语法错误(操作符丢失)在't.cnt from (select sum(cgyz)cnt from gdzckp0809 group by zclb)t'中     好像 ACCESS 中的 update 语法中不能使用 from 子句