码迷,mamicode.com
首页 > 其他好文 > 详细

更新地区号存储过程

时间:2016-06-03 10:09:34      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

USE [**]
GO
/****** Object:  StoredProcedure [***].[***]    Script Date: 06/03/2016 09:01:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [***].[llrrGXKH_GJZ]
    @lsbm char(20), 
    @dqbh char(20),
    @serror    varchar(255) output
AS
BEGIN
   declare @vssql varchar(500)
   
   
   
--1.1 根据上游供应商绑定匹配,解决不同客户以同一客户名从不同供应商进货的问题.
           set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khsdzd_sjkhbh,yjlx_dqbh=khsdzd_dqbh,yjlx_xykh= ‘‘1‘‘,yjlx_ppkhmc=khsdzd_sjkhmc 
        set @vssql +=  From khsdzd 
        set @vssql +=  where ltrim(rtrim(yjlx_khmc))=ltrim(rtrim(khsdzd_khmc)) 
        set @vssql +=  and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=  and (khsdzd_js = ‘‘1‘‘ or khsdzd_js = ‘‘2‘‘ or khsdzd_js = ‘‘3‘‘)
        set @vssql +=  and khsdzd_gysbh = yjlx_gysbh
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1.5 根据上游绑定表(khsdzd)来更新匹配
            raiserror(@sError,16,1)
            return -1
            end    
--1.2 根据上游供应商绑定匹配
           set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khsdzd_sjkhbh,yjlx_dqbh=khsdzd_dqbh,yjlx_xykh= ‘‘0‘‘,yjlx_ppkhmc=khsdzd_sjkhmc 
        set @vssql +=  From khsdzd 
        set @vssql +=  where ltrim(rtrim(yjlx_khmc))=ltrim(rtrim(khsdzd_khmc)) 
        set @vssql +=  and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=  and (khsdzd_js = ‘‘4‘‘ or khsdzd_js = ‘‘5‘‘ or khsdzd_js = ‘‘6‘‘)
        set @vssql +=  and khsdzd_gysbh = yjlx_gysbh
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1.5 根据上游绑定表(khsdzd)来更新匹配
            raiserror(@sError,16,1)
            return -1
            end    
   
--1.3 根据客户名称来匹配,并更新 协议 客户标志为‘‘1‘‘,客户名称==匹配客户名称

        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘1‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd 
        set @vssql +=  where ltrim(rtrim(yjlx_khmc))=ltrim(rtrim(khppzd_khmc)) 
        set @vssql +=  and (khppzd_js=‘‘2‘‘ or khppzd_js=‘‘1‘‘ or khppzd_js=‘‘3‘‘) 
        set @vssql +=  and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1 根据客户名称来匹配,并更新 协议 客户标志为‘‘1‘‘,客户名称==匹配客户名称
            raiserror(@sError,16,1)
            return -1
            end        
            

--1.5 根据客户别名表(khbmzd)来更新匹配

        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khbmzd_khbh,yjlx_dqbh=khbmzd_dqbh,yjlx_xykh= ‘‘1‘‘,yjlx_ppkhmc=khbmzd_khmc 
        set @vssql +=  From khbmzd 
        set @vssql +=  where ltrim(rtrim(yjlx_khmc))=ltrim(rtrim(khbmzd_bm)) 
        set @vssql +=  and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=  and (khbmzd_js = ‘‘1‘‘ or khbmzd_js = ‘‘2‘‘ or khbmzd_js = ‘‘3‘‘)
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1.5 根据客户别名表(khbmzd)来更新匹配
            raiserror(@sError,16,1)
            return -1
            end    
    
    
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khbmzd_khbh,yjlx_dqbh=khbmzd_dqbh,yjlx_xykh= ‘‘0‘‘,yjlx_ppkhmc=khbmzd_khmc 
        set @vssql +=  From khbmzd 
        set @vssql +=  where ltrim(rtrim(yjlx_khmc))=ltrim(rtrim(khbmzd_bm)) 
        set @vssql +=  and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=  and (khbmzd_js = ‘‘4‘‘ or khbmzd_js = ‘‘5‘‘ or khbmzd_js = ‘‘6‘‘)
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1.5 根据客户别名表(khbmzd)来更新匹配
            raiserror(@sError,16,1)
            return -1
            end    
--1.6 根据客户匹配三个关键字字典(khppzd2)来更新匹配
        --市内更新协议客户
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘1‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd2 
        set @vssql +=  where yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz1))+‘‘%‘‘‘        
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz2))+‘‘%‘‘ 
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz3))+‘‘%‘‘ 
        set @vssql +=  and (khppzd_js=‘‘2‘‘ or khppzd_js=‘‘1‘‘ or khppzd_js=‘‘3‘‘) 
        set @vssql +=  and   (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=  and left(ltrim(rtrim(yjlx_gysdqbh)),4)=left(ltrim(rtrim(khppzd_dqbh)),4) 
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1.6 根据khppzd2(khbmzd)来更新匹配
            raiserror(@sError,16,1)
            return -1
            end    
            
        --省内更新协议客户
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘1‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd2 
        set @vssql +=  where yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz1))+‘‘%‘‘‘        
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz2))+‘‘%‘‘ 
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz3))+‘‘%‘‘ 
        set @vssql +=  and (khppzd_js=‘‘2‘‘ or khppzd_js=‘‘1‘‘ or khppzd_js=‘‘3‘‘) 
        set @vssql +=  and   (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=  and left(ltrim(rtrim(yjlx_gysdqbh)),2)=left(ltrim(rtrim(khppzd_dqbh)),2) 
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1.6 根据khppzd2(khbmzd)来更新匹配
            raiserror(@sError,16,1)
            return -1
            end    
        --省外更新协议客户
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘1‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd2 
        set @vssql +=  where yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz1))+‘‘%‘‘‘        
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz2))+‘‘%‘‘ 
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz3))+‘‘%‘‘ 
        set @vssql +=  and (khppzd_js=‘‘2‘‘ or khppzd_js=‘‘1‘‘ or khppzd_js=‘‘3‘‘) 
        set @vssql +=  and   (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1.6 根据khppzd2(khbmzd)来更新匹配
            raiserror(@sError,16,1)
            return -1
            end        
                    
        --市内更新非协议客户
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘0‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd2 
        set @vssql +=  where yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz1))+‘‘%‘‘‘        
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz2))+‘‘%‘‘ 
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz3))+‘‘%‘‘ 
        set @vssql +=  and (khppzd_js=‘‘4‘‘ or khppzd_js=‘‘5‘‘ or khppzd_js=‘‘6‘‘) 
        set @vssql +=  and   (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=  and left(ltrim(rtrim(yjlx_gysdqbh)),4)=left(ltrim(rtrim(khppzd_dqbh)),4)
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1.6 根据khppzd2(khbmzd)来更新匹配
            raiserror(@sError,16,1)
            return -1
            end    
        --省内更新非协议客户
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘0‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd2 
        set @vssql +=  where yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz1))+‘‘%‘‘‘        
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz2))+‘‘%‘‘ 
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz3))+‘‘%‘‘ 
        set @vssql +=  and (khppzd_js=‘‘4‘‘ or khppzd_js=‘‘5‘‘ or khppzd_js=‘‘6‘‘) 
        set @vssql +=  and   (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=  and left(ltrim(rtrim(yjlx_gysdqbh)),2)=left(ltrim(rtrim(khppzd_dqbh)),2)
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1.6 根据khppzd2(khbmzd)来更新匹配
            raiserror(@sError,16,1)
            return -1
            end
        --省外更新非协议客户
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘0‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd2 
        set @vssql +=  where yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz1))+‘‘%‘‘‘        
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz2))+‘‘%‘‘ 
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz3))+‘‘%‘‘ 
        set @vssql +=  and (khppzd_js=‘‘4‘‘ or khppzd_js=‘‘5‘‘ or khppzd_js=‘‘6‘‘) 
        set @vssql +=  and   (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror = 1.6 根据khppzd2(khbmzd)来更新匹配
            raiserror(@sError,16,1)
            return -1
            end
-- 2 更新非协议客户的客户名称  客户名称==匹配客户名称
        --市内
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘0‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd 
        set @vssql +=  where ltrim(rtrim(yjlx_khmc))=ltrim(rtrim(khppzd_khmc)) 
        set @vssql +=  and (khppzd_js=‘‘4‘‘ or khppzd_js=‘‘5‘‘ or khppzd_js=‘‘6‘‘) 
        set @vssql +=  and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=  and left(ltrim(rtrim(yjlx_gysdqbh)),4)=left(ltrim(rtrim(khppzd_dqbh)),4) 
        
        exec(@vssql)
        if @@error <> 0
            begin
            select @serror =  2 更新非协议客户的客户名称  客户名称==匹配客户名称,--市内
            raiserror(@sError,16,1)
            return -1
            end                
        --省内
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘0‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd 
        set @vssql +=  where ltrim(rtrim(yjlx_khmc))=ltrim(rtrim(khppzd_khmc)) 
        set @vssql +=  and (khppzd_js=‘‘4‘‘ or khppzd_js=‘‘5‘‘ or khppzd_js=‘‘6‘‘) 
        set @vssql +=  and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null )    
        set @vssql +=  and left(ltrim(rtrim(yjlx_gysdqbh)),2)=left(ltrim(rtrim(khppzd_dqbh)),2) 
        exec(@vssql)
        if @@error <> 0
            begin
            
            select @serror = 2 更新非协议客户的客户名称  客户名称==匹配客户名称,-省内
            raiserror(@sError,16,1)
            return -1
        end        


        --省外
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘0‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd 
        set @vssql +=  Where ltrim(rtrim(yjlx_khmc))=ltrim(rtrim(khppzd_khmc)) 
        set @vssql +=  and (khppzd_js=‘‘4‘‘ or khppzd_js=‘‘5‘‘ or khppzd_js=‘‘6‘‘) 
        set @vssql +=  and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null )    
        
        exec(@vssql)
        if @@error <> 0
            begin
            
            select @serror = 2 更新非协议客户的客户名称  客户名称==匹配客户名称,--省外
            raiserror(@sError,16,1)
            return -1
        end        

--3 根据客户关键字 更新协议客户编号\地区编号
    --先在本地区匹配
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘1‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd 
        set @vssql +=  Where 
        set @vssql +=    yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz1))+‘‘%‘‘ 
        set @vssql +=  and  yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz2))+‘‘%‘‘ 
        set @vssql +=  and (khppzd_js=‘‘2‘‘ or khppzd_js=‘‘1‘‘ or khppzd_js=‘‘3‘‘ ) 
        set @vssql +=  and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=  and left(ltrim(yjlx_gysdqbh),2)=left(ltrim(khppzd_dqbh),2) 

        exec(@vssql)
        if @@error <> 0
            begin
            
            select @serror = -3 根据客户关键字 更新协议客户编号\地区编号,本地区匹配
            raiserror(@sError,16,1)
            return -1
        end    
--根据地区字典匹配
    --3.1 市内匹配,客户名称包含有地区名称关键字(zwdqzd_bz=‘0/3‘匹配)
   set @vssql= UPDATE +@lsbm +  set  yjlx_dqbh=zwdqzd_dqbh,yjlx_tzry=zwdqzd_ywy,yjlx_tzrymc=zwdqzd_ywymc 
   set  @vssql +=  From lrdqzd 
   set  @vssql += Where yjlx_dqbh=‘‘‘‘ 
   set  @vssql +=  and left(yjlx_gysdqbh,4)=left(zwdqzd_dqbh,4) 
   set  @vssql +=  and yjlx_khmc like ‘‘%‘‘+zwdqzd_dqmc+‘‘%‘‘ 
   set  @vssql +=  and (zwdqzd_bz=‘‘0‘‘ or zwdqzd_bz=‘‘3‘‘) 
   exec(@vssql)
   if @@error <> 0
    begin
    rollback
    select @serror = 1 市内匹配,客户名称包含有地区名称关键字
    raiserror(@sError,16,1)
    return -1
   end

   
   --3.2 市内匹配,客户名称包含(地区名称-1)的关键字(zwdqzd_bz=‘0/3‘匹配)
    set @vssql=  UPdate + @lsbm
    set @vssql +=  set yjlx_dqbh=zwdqzd_dqbh,yjlx_tzry=zwdqzd_ywy,yjlx_tzrymc=zwdqzd_ywymc 
    set @vssql +=  From lrdqzd 
    set @vssql +=  Where yjlx_dqbh=‘‘‘‘  
    set @vssql +=  and left(yjlx_gysdqbh,4)=left(zwdqzd_dqbh,4)  
    set @vssql +=  and yjlx_khmc like ‘‘%‘‘+left(zwdqzd_dqmc,len(zwdqzd_dqmc)-1)+‘‘%‘‘‘  
    set @vssql +=  and (zwdqzd_bz=‘‘0‘‘ or zwdqzd_bz=‘‘3‘‘)     
    exec(@vssql)
   if @@error <> 0
    begin
    rollback
    select @serror = 2 市内匹配,客户名称包含(地区名称-1)的关键字(zwdqzd_bz=匹配)
    raiserror(@sError,16,1)
    return -1
   end    
    
    --3.3 //市内,客户名称包含有地区名称全称(zwdqzd_bz=‘1‘匹配)
            
    set    @vssql =  UPdate + @lsbm
    set    @vssql +=  set yjlx_dqbh=zwdqzd_dqbh,yjlx_tzry=zwdqzd_ywy,yjlx_tzrymc=zwdqzd_ywymc 
    set    @vssql +=  From lrdqzd 
    set    @vssql +=  Where yjlx_dqbh=‘‘‘‘  
    set    @vssql +=  and left(yjlx_gysdqbh,4)=left(zwdqzd_dqbh,4)  
    set    @vssql +=  and yjlx_khmc like ‘‘%‘‘+zwdqzd_dqmc +‘‘%‘‘   
    set    @vssql +=  and zwdqzd_bz=‘‘1‘‘     
    exec(@vssql)
    
   if @@error <> 0
    begin
    rollback
    select @serror = 3 //市内,客户名称包含有地区名称全称(zwdqzd_bz=匹配)
    raiserror(@sError,16,1)
    return -1
   end    
       --3.4//省内,客户名称包含有地区名称关键字(zwdqzd_bz=‘0‘匹配)
    set @vssql =  UPdate + @lsbm
    set @vssql +=  set yjlx_dqbh=zwdqzd_dqbh,yjlx_tzry=zwdqzd_ywy,yjlx_tzrymc=zwdqzd_ywymc 
    set @vssql +=  From lrdqzd 
    set @vssql +=  Where yjlx_dqbh=‘‘‘‘ 
    set @vssql +=  and left(yjlx_gysdqbh,2)=left(zwdqzd_dqbh,2)  
    set @vssql +=  and yjlx_khmc like ‘‘%‘‘+left(zwdqzd_dqmc,len(zwdqzd_dqmc) - 1) +‘‘%‘‘   
    set @vssql +=  and (zwdqzd_bz=‘‘0‘‘ or zwdqzd_bz=‘‘3‘‘)     
    exec(@vssql)    
   if @@error <> 0
    begin
    rollback
    select @serror = 4//省内,客户名称包含有地区名称关键字(zwdqzd_bz=匹配)
    raiserror(@sError,16,1)
    return -1
   end    
    
    ----3.5//省内,客户名称包含有地区名称全称(zwdqzd_bz=‘‘1‘‘匹配)
    set @vssql =  UPdate + @lsbm
    set @vssql +=  set yjlx_dqbh=zwdqzd_dqbh,yjlx_tzry=zwdqzd_ywy,yjlx_tzrymc=zwdqzd_ywymc 
    set @vssql +=  From lrdqzd 
    set @vssql +=  Where yjlx_dqbh=‘‘‘‘  
    set @vssql +=  and left(yjlx_gysdqbh,2)=left(zwdqzd_dqbh,2)  
    set @vssql +=  and yjlx_khmc like ‘‘%‘‘+zwdqzd_dqmc+‘‘%‘‘   
    set @vssql +=  and zwdqzd_bz=‘‘1‘‘     
    exec(@vssql)
   if @@error <> 0
    begin
    rollback
    select @serror = 5//省内,客户名称包含有地区名称全称(zwdqzd_bz=‘‘1‘‘匹配)
    raiserror(@sError,16,1)
    return -1
   end    
    
    --3.6    //省内级数为1 ,客户名称前2位=地区名称前2位
    set @vssql =  UPdate + @lsbm
    set @vssql +=  set yjlx_dqbh=zwdqzd_dqbh,yjlx_tzry=zwdqzd_ywy,yjlx_tzrymc=zwdqzd_ywymc 
    set @vssql +=  From lrdqzd 
    set @vssql +=  Where yjlx_dqbh=‘‘‘‘      
    set @vssql +=  and zwdqzd_js=‘‘1‘‘ and left(yjlx_khmc,2)=left(zwdqzd_dqmc,2) 
    set @vssql +=  and zwdqzd_bz =‘‘1‘‘‘
    set @vssql +=  and left(zwdqzd_dqbh,2)=‘‘‘
    set @vssql += @dqbh
    set @vssql += ‘‘‘‘
    exec(@vssql)
   if @@error <> 0
    begin
    rollback
    select @serror = 6    //省内级数为1 ,客户名称前2位=地区名称前2位
    raiserror(@sError,16,1)
    return -1
   end    
   --3.4 / 乡镇地区字典匹配 XZQHZD  ERP_DQBH------2013-04-08--*/        
    set @vssql =  UPdate + @lsbm
    set @vssql +=  set yjlx_dqbh=ERP_DQBH 
    set @vssql +=  From XZQHZD 
    set @vssql +=  Where yjlx_dqbh=‘‘‘‘  
    set @vssql +=  and left(yjlx_gysdqbh,4)=left(erp_dqbh,4)  
    set @vssql +=  and yjlx_khmc like ‘‘%‘‘+left(NAME_XIANG,len(NAME_XIANG) - 1) +‘‘%‘‘  
    exec(@vssql)    
    
   if @@error <> 0
    begin
    rollback
    select @serror = 7 / 乡镇地区字典匹配 XZQHZD  ERP_DQBH------2013-04-08--*
    raiserror(@sError,16,1)
    return -1
   end    

        
        --后在全国匹配        
        set @vssql =  Update  +@lsbm
        set @vssql +=  Set yjlx_khbh=khppzd_khbh,yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘1‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd 
        set @vssql +=  Where yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz1))+‘‘%‘‘ 
        set @vssql +=  and   yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz2))+‘‘%‘‘ 
        set @vssql +=  and (khppzd_js=‘‘2‘‘ or khppzd_js=‘‘1‘‘ or khppzd_js=‘‘3‘‘ ) 
        set @vssql +=  and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        
        exec(@vssql)
        if @@error <> 0
            begin
            
            select @serror = -3 根据客户关键字 更新协议客户编号\地区编号,全国匹配
            raiserror(@sError,16,1)
            return -1
        end        


--4 根据客户关键字 更新非协议客户编号\地区编号
    --先在本地区匹配
        set @vssql =  Update  +@lsbm
        set @vssql +=   set yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘0‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd 
        set @vssql +=  Where   
        set @vssql +=     yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz1))+‘‘%‘‘‘        
        set @vssql +=   and  yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz2))+‘‘%‘‘ 
        set @vssql +=   and (khppzd_js=‘‘4‘‘ or khppzd_js=‘‘5‘‘ or khppzd_js=‘‘6‘‘) 
        set @vssql +=   and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        set @vssql +=   and left(ltrim(yjlx_gysdqbh),2)=left(ltrim(khppzd_dqbh),2) 
        exec(@vssql)
        if @@error <> 0
            begin
            
            select @serror = 4 根据客户关键字 更新非协议客户编号\地区编号,本地区匹配
            raiserror(@sError,16,1)
            return -1
        end

        --后在全国匹配
        set @vssql =  Update  +@lsbm
        set @vssql +=   set yjlx_dqbh=khppzd_dqbh,yjlx_xykh=‘‘0‘‘,yjlx_ppkhmc=khppzd_khmc 
        set @vssql +=  From khppzd 
        set @vssql +=  Where yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz1))+‘‘%‘‘ 
        set @vssql +=   and  yjlx_khmc like ‘‘%‘‘+ltrim(rtrim(khppzd_gjz2))+‘‘%‘‘ 
        set @vssql +=   and (khppzd_js=‘‘4‘‘ or khppzd_js=‘‘5‘‘ or khppzd_js=‘‘6‘‘) 
        set @vssql +=   and (ltrim(rtrim(yjlx_khbh))=‘‘‘‘ or yjlx_khbh is null ) 
        
        exec(@vssql)
    
        if @@error <> 0
            begin
            
            select @serror = 4 根据客户关键字 更新非协议客户编号\地区编号,在全国匹配
            raiserror(@sError,16,1)
            return -1
        end

   
    
END

 

更新地区号存储过程

标签:

原文地址:http://www.cnblogs.com/lrzy/p/5555090.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!