表1(cust_msg)
cust_id crm_cust_nbr parent_id    flag vip_nbr
665544 ppccdd            空     3 12343
空 ddeeff            空     空 空
空 ccffee            空     空 12364
表2(lty_imp)
crm_cust_nbr  vip_nbr
ppccdd         12343
ddeeff         12343
ccddee         12364
更新的规则
首先通过 表1 flag=3的数据的vip_nbr来关联表2得到crm_cust_nbr
比如第一条flag=3的vip_nbr=12343关联表2得到ppccdd和ddeeff
然后把 表1 所有crm_cust_nbr在得到结果(就是ppccdd和ddeeff)且
flag<>3的数据的parent_id更新为flag=3的数据的cust_id
就是把crm_cust_nbr=ddeeff的 parent_id=665544,由于第一条是flag=3的,所以不变
高手救救我吧..............

解决方案 »

  1.   

    表1中flag=3的数据有很多,这里只举例了1条
    表2中 一个vip_nbr对应>=1个crm_cust_nbr
      

  2.   

    2个SQL先
    update cust_msg 
    set vip_nbr=(select vip_nbr from cust_msg c,lty_imp l where c.crm_cust_nbr=l.crm_cust_nbr)再
    update cust_msg cm
    set parent_id=(select c.cust_id from cust_msg c where cm.vip_nbr=c.vip_nbr and c.flag='3')
    where cm.flag<>'3'没测试,思路应该没错,有问题楼主自己调试吧!