update phar_medi_main,phar_checkup_temp set phar_medi_main.medistore=phar_medi_main.medistore-phar_checkup_temp.phar_temp_num  where phar_medi_main.medino=phar_checkup_temp.medino以上的SQL语句有什么问题?
要实现phar_medi_main中满足phar_medi_main.medino=phar_checkup_temp.medino的记录的medistore都被更新。
在线等待!!!

解决方案 »

  1.   

    正确的语句如下:
       
        update phar_medi_main
           set a.medistore=a.mediatore-b.phar_temp_num
        where
           a.medino=b.medino
        from phar_medi_main a,phar_checkup_temp.medino
    应该可以.
      

  2.   

    不好意思,少了一个B,修改如下    update phar_medi_main
           set a.medistore=a.mediatore-b.phar_temp_num
      
        from phar_medi_main a,phar_checkup_temp b
        where
           a.medino=b.medino
      

  3.   

    老大,不行阿 !‘无法使用列前缀‘A’,此前缀必须与 update 子句'phar_meid_main’中的对象匹配’
    报这个错!
    怎么办?
      

  4.   

    数据库的类型是什么?你的写法应该也没错,但仅适用于Access数据库。
      

  5.   

    update phar_medi_main
           set a.medistore=a.mediatore-b.phar_temp_num
      
        from phar_medi_main as a,phar_checkup_temp as b
        where
           a.medino=b.medino
      

  6.   

    UPDATE语句在ACCESS中和SQLSERVER中的格式不一样!
      

  7.   

    我用的是SQLSERVER。该怎么写!
      

  8.   

    你可以用SQLSERVER中的触发器啊
      

  9.   

    这么简单:    update phar_medi_main a
           set a.medistore=a.mediatore -(select b.phar_temp_num from phar_checkup_temp b where B.medino=A.medino)
      

  10.   

    update phar_medi_main a
    set a.medistore=a.medistore-b.phar_temp_num 
    from phar_medi_main a,phar_checkup_temp b
    where a.medino=b.medino
    这样就匹配了。
      

  11.   

    使用存储过程或者分多条sql语句执行即可达到你的目的
      

  12.   

    push++
    我有和你同样的问题,帮你推一下。
    update table2 set name=(select table1.name from table1 where table1.id=
    table2.id) where if exists (select * from table1 where table1.id=table2.id)
      

  13.   

    update phar_medi_main set phar_medi_main.medistore=phar_medi_main.medistore-phar_checkup_temp.phar_temp_num from phar_medi_main, phar_checkup_temp where phar_medi_main.medino=phar_checkup_temp.medino
      

  14.   

    或者照lyyrw(咋暖还寒)的写法,但要把第一行的a去掉:
    update phar_medi_main 
    set a.medistore=a.medistore-b.phar_temp_num 
    from phar_medi_main a,phar_checkup_temp b
    where a.medino=b.medino
      

  15.   

    照lyyrw(咋暖还寒)的写法,保留第一行的a,去掉表名
      

  16.   

    update phar_medi_main 
    set medistore=medistore-b.phar_temp_num 
    from phar_medi_main a,phar_checkup_temp b
    where a.medino=b.medino这样行不行?