如下表
客户编码   客户名称  月初    应收      实收     月末余额
001         a1(期初)   0     5000        0         5000   
001         a1(期末)   0     8000      3000        10000   
002         a2(期初)   0     2000        0         2000   
002         a2(期末)   0     5000      4000        3000  要得到的效果是
客户编码    客户名称  月初      应收      实收     月末余额
001         a1(期末)   5000     8000      3000        10000   
001         a2(期末)   2000     5000      4000        3000 
即将客户a1(期初)的月末余额5000更新到客户a1(期末)的月初数中,并删除a1(期初)这条记录
同样将客户a2(期初)的月末余额2000更新到客户a2(期末)的月初数中,并删除a2(期初)这条记录

解决方案 »

  1.   

    update a set 月初=(select 月末余额 from tb where 客户编码=a.客户编码 and 客户名称 like '%期
    初%')
    from tb a
    delete tb where 客户名称 like '%期初%'
      

  2.   


    ;with galen as 
    (select *,rn=row_number()over(partition by 客户编码 order by 客户编码) from 表a where rn=2)update 表a set a.月初=a.应收,a.应收=galen.应收,a.实收=galen.实收,a.月末余额=galen.月末余额 from 表a a, galen where a.客户编号=galen.客户编号
      

  3.   

    修改一下;with galen as 
    (select *,rn=row_number()over(partition by 客户编码 order by 应收) 
    from 表a where rn=2)update 表a set a.月初=a.应收,a.应收=galen.应收,
    a.实收=galen.实收,a.月末余额=galen.月末余额 
    from 表a a, galen where a.客户编号=galen.客户编号