大家好,问下这个脚本应该怎么写。
有三个表。
表bill:
id   dxid  dxlx  billid  kmid
1    5012  5069  1       12
2    5013  5069  2       12
3    5014  5069  3       12表dx5069:
dxid  sapid
5012  1234
5013  1235
5014  1236表dx6019
dxid  sapid
4321  1234
5321  1235
6321  1236
我想根据billid表:select * from bill where kmid='12' and dxlx='5069'
找出后再根据表dx5069匹配对象ID,得到SAPID。
再根据SAPID得到dx6019中的DXID。然后更新表BILL中的DXID为DX6019中的DXID。
结果表BILL内容如下:
表bill:
id   dxid  dxlx  billid  kmid
1    4321  5069  1       12
2    5321  5069  2       12
3    6321  5069  3       12这个用循环应该怎么做啊。查了下没写出来。帮忙看下。。谢谢啦。

解决方案 »

  1.   

    试试这个:update bill a
      set a.dxid = (select c.dxid 
                      from dx6019 c,dx5069 b
                     where c.sapid = b.sapid
                       and a.dxid  = b.dxid 
                      )
     where exists ( select 1
                      from dx6019 c,dx5069 b
                     where c.sapid = b.sapid
                       and a.dxid  = b.dxid 
                      ));
      

  2.   

    嗯。谢谢。可以了。
    问下。( select 1
                      from dx6019 c,dx5069 b
                     where c.sapid = b.sapid
                       and a.dxid  = b.dxid 
                      )
     这段表示当什么的时候退出啊。