这个查询可以正常运行
select * from u_agent agent
inner join t_company_organ organ on agent.organ_id = organ.organ_id
inner join u_dict dict on dict.categoryid=5 and organ.area_code=dict.comments 
where  agent.isExcellence =1
and trunc(dict.keyid /100)*100 = 3700
这个update会报错:“ORA-00933: SQL command not properly ended
update u_agent agent
set agent.account_status=1
from agent    ------------去掉这个from 也是报一样的错
inner join t_company_organ organ on agent.organ_id = organ.organ_id
inner join u_dict dict on dict.categoryid=5 and organ.area_code=dict.comments 
where  agent.isExcellence =1
and trunc(dict.keyid /100)*100 = 3700这样会报错:“ORA-00971: missing SET keyword”
update u_agent agent
inner join t_company_organ organ on agent.organ_id = organ.organ_id
inner join u_dict dict on dict.categoryid=5 and organ.area_code=dict.comments 
set agent.account_status=1   ---------把set放到了下面
where  agent.isExcellence =1
and trunc(dict.keyid /100)*100 = 3700

解决方案 »

  1.   

    标题写错了.......是想写是否不支持inner join...
      

  2.   

    看了很多其他的帖子最后都用的子查询 我就想知道 是否非得用子查询不可?
    是我的inner join有问题 还是根本不能 inner join。
      

  3.   

    oracle里的update 只能写一张表
    update 表名
    set   字段=
    where 条件我帮你改一下吧
      

  4.   


    UPDATE u_agent AGENT
       SET AGENT.account_status = 1
     WHERE AGENT.isexcellence = 1
       AND TRUNC (dict.keyid / 100) * 100 = 3700
       AND EXISTS (
              SELECT 1
                FROM t_company_organ organ, u_dict dict
               WHERE AGENT.organ_id = organ.organ_id
                 AND dict.categoryid = 5
                 AND organ.area_code = dict.comments)
      

  5.   

    貌似不行啊,报这个错...
    ORA-00904: "DICT"."DEYID": invalid identifier是因为别名在下面的那个查询里吧? 上面用不到? 如果用到了 就又等于用到两个表了bo?
      

  6.   

    ORA-00904: "DICT"."KEYID": invalid identifier 
    这个错  刚才又写错了 
      

  7.   

    你那个from 要有个select,字段最好自己核对(没啥技术只是需要仔细),
      

  8.   


    UPDATE u_agent AGENT
       SET AGENT.account_status = 1
     WHERE AGENT.isexcellence = 1
       
       AND EXISTS (
              SELECT 1
                FROM t_company_organ organ, u_dict dict
               WHERE AGENT.organ_id = organ.organ_id
                 AND dict.categoryid = 5
                 AND organ.area_code = dict.comments
                 AND TRUNC (dict.keyid / 100) * 100 = 3700)