SQL对比-金蝶云星空-不同账套的凭证号

SQL-对比金蝶云星空不同账套的凭证号
--------------------------------------------------------------
001-凭证号对比

高清图片查看方法:点击图片---右键---在新标签页中打开图片(或全屏看图) 


--------------------------------------------------------------

 
 --********************************************************************************************************************************************
 -----------------------------------------------------
 --当前数据库---查询凭证
        select      (CONVERT(varchar(10), t_gl_voucher.FYear) + '-' + REPLICATE('0',2-len(t_gl_voucher.FPeriod)) + CONVERT(varchar(10), t_gl_voucher.FPeriod)   + '-' +   t_bd_vouchergroup_l.FName    + '-' + REPLICATE('0',5-len(t_gl_voucher.FVOUCHERGROUPNO)) +  CONVERT(varchar(10) , t_gl_voucher.FVOUCHERGROUPNO) ) as 金蝶cloud凭证索引 
                  ,  t_gl_voucher.FYEAR as 年度  ,  t_gl_voucher.FPERIOD as 期间  ,  t_bd_vouchergroup_l.FNAME  ,  t_gl_voucher.FVOUCHERGROUPNO as 凭证号 
        from         t_gl_voucher  left outer join t_bd_vouchergroup_l on t_gl_voucher.FVOUCHERGROUPID = t_bd_vouchergroup_l.FVCHGROUPID 
                                    left outer join T_ORG_ORGANIZATIONS_L on t_gl_voucher.FACCTORGID = T_ORG_ORGANIZATIONS_L.FORGID
        where
                     t_gl_voucher.FYEAR   = 2020   and   t_gl_voucher.FPERIOD  = 3    and   T_ORG_ORGANIZATIONS_L.FNAME = '56_响水县灌江控股集团'            --常用条件:1.组织名称/ 2.年度
        order by
                     (CONVERT(varchar(10), t_gl_voucher.FYear) + '-' + REPLICATE('0',2-len(t_gl_voucher.FPeriod)) + CONVERT(varchar(10), t_gl_voucher.FPeriod)   + '-' +   t_bd_vouchergroup_l.FName    + '-' + REPLICATE('0',5-len(t_gl_voucher.FVOUCHERGROUPNO)) +  CONVERT(varchar(10) , t_gl_voucher.FVOUCHERGROUPNO) )  
  -----------------------------------------------------
  --*********************************************************************************************************************************************  
  --指定数据库1---查询凭证
  --注意:如果是没有启用多组织的数据中心,可以去掉关于组织的内容
    drop view  DF_迁移交付_数据库1_凭证列表
    create view DF_迁移交付_数据库1_凭证列表 as
     (
        select        D1_T03.FNAME as 迁移交付_数据库1_组织名称
                  ,  ( CONVERT(varchar(200), D1_T03.FNAME) + '-' +  CONVERT(varchar(10), D1_T01.FYear) + '-' + REPLICATE('0',2-len(D1_T01.FPeriod)) + CONVERT(varchar(10), D1_T01.FPeriod)   + '-' +   D1_T02.FName    + '-' + REPLICATE('0',5-len(D1_T01.FVOUCHERGROUPNO)) +  CONVERT(varchar(10) , D1_T01.FVOUCHERGROUPNO) ) as 迁移交付_数据库1_金蝶cloud_组织凭证索引 
                  ,  ( CONVERT(varchar(10), D1_T01.FYear) + '-' + REPLICATE('0',2-len(D1_T01.FPeriod)) + CONVERT(varchar(10), D1_T01.FPeriod)   + '-' +   D1_T02.FName    + '-' + REPLICATE('0',5-len(D1_T01.FVOUCHERGROUPNO)) +  CONVERT(varchar(10) , D1_T01.FVOUCHERGROUPNO) ) as 迁移交付_数据库1_金蝶cloud_单独凭证索引 
      ,  D1_T01.FYEAR as  迁移交付_数据库1_年度  ,  D1_T01.FPERIOD as 迁移交付_数据库1_期间  ,  D1_T02.FNAME 迁移交付_数据库1_凭证字 ,  D1_T01.FVOUCHERGROUPNO as 迁移交付_数据库1_凭证号 
        from         [AIS20220226120723]..t_gl_voucher as D1_T01                                                   --变量1--迁移交付_数据库1
        left outer join  [AIS20220226120723]..t_bd_vouchergroup_l    as D1_T02                                     --变量1--迁移交付_数据库1
        on D1_T01.FVOUCHERGROUPID = D1_T02.FVCHGROUPID 
        left outer join [AIS20220226120723]..T_ORG_ORGANIZATIONS_L   as D1_T03                                     --变量1--迁移交付_数据库1
        on D1_T01.FACCTORGID = D1_T03.FORGID
        where   D1_T01.FYEAR   <= 2021     and   D1_T03.FNAME = '56_响水县灌江控股集团'                            --变量2--常用条件:1.组织名称/ 2.年度(如果用户更改过组织名称,对比时则必须加该条件,即每个组织创建一次)
     )
     select * from  DF_迁移交付_数据库1_凭证列表 order by  迁移交付_数据库1_金蝶cloud_组织凭证索引    
  -----------------------------------------------------
  --***********************************************************************************************************************************************  
  --指定数据库2---查询凭证
  --注意:如果是没有启用多组织的数据中心,可以去掉关于组织的内容
    drop view  DF_当前在用_数据库2_凭证列表
    create view DF_当前在用_数据库2_凭证列表 as
     ( 
        select       D1_T03.FNAME as 当前在用_数据库2_组织名称
                  ,  ( CONVERT(varchar(200), D1_T03.FNAME) + '-' +  CONVERT(varchar(10), D1_T01.FYear) + '-' + REPLICATE('0',2-len(D1_T01.FPeriod)) + CONVERT(varchar(10), D1_T01.FPeriod)   + '-' +   D1_T02.FName    + '-' + REPLICATE('0',5-len(D1_T01.FVOUCHERGROUPNO)) +  CONVERT(varchar(10) , D1_T01.FVOUCHERGROUPNO) ) as 当前在用_数据库2_金蝶cloud_组织凭证索引 
                  ,  ( CONVERT(varchar(10), D1_T01.FYear) + '-' + REPLICATE('0',2-len(D1_T01.FPeriod)) + CONVERT(varchar(10), D1_T01.FPeriod)   + '-' +   D1_T02.FName    + '-' + REPLICATE('0',5-len(D1_T01.FVOUCHERGROUPNO)) +  CONVERT(varchar(10) , D1_T01.FVOUCHERGROUPNO) ) as 当前在用_数据库2_金蝶cloud_单独凭证索引 
                  ,  D1_T01.FYEAR as  当前在用_数据库2_年度  ,  D1_T01.FPERIOD as  当前在用_数据库2_期间  ,  D1_T02.FNAME  当前在用_数据库2_凭证字 ,  D1_T01.FVOUCHERGROUPNO as   当前在用_数据库2_凭证号 
        from         [AIS20220302082218]..t_gl_voucher as D1_T01                                                   --变量1--数据库2
        left outer join  [AIS20220302082218]..t_bd_vouchergroup_l    as D1_T02                                     --变量1--数据库2
        on D1_T01.FVOUCHERGROUPID = D1_T02.FVCHGROUPID 
        left outer join [AIS20220302082218]..T_ORG_ORGANIZATIONS_L   as D1_T03                                     --变量1--数据库2
        on D1_T01.FACCTORGID = D1_T03.FORGID
        where   D1_T01.FYEAR   <= 2021     and   D1_T03.FNAME = '56_响水县灌江控股集团'                            --变量2--常用条件:1.组织名称/ 2.年度(如果用户更改过组织名称,对比时则必须加该条件,即每个组织创建一次)
      )  
    select * from  DF_当前在用_数据库2_凭证列表 order by   当前在用_数据库2_金蝶cloud_组织凭证索引    
   -----------------------------------------------------
   --************************************************************************************************************************************************
   --两个数据库做全连接,判断是否增加或删除过凭证
   --***************************************************
   --用户   <没有>  修改过组织名称,对比凭证时,使用的sql语句
   --如果   <没有>  修改过组织名称,则  可以   <批量    >一次性的对比多个组织的凭证数据,凭证列表的视图,只要创建一次就可以了
    select     T01.*   , T02.*
    from       DF_迁移交付_数据库1_凭证列表 as T01  Full Outer Join  DF_当前在用_数据库2_凭证列表 as T02  on  T01.迁移交付_数据库1_金蝶cloud_组织凭证索引 = T02.当前在用_数据库2_金蝶cloud_组织凭证索引
    order by  T01.迁移交付_数据库1_金蝶cloud_组织凭证索引 , T02.当前在用_数据库2_金蝶cloud_组织凭证索引
  -----------------------------------------------------
  --***************************************************
  --用户   <已经>  修改过组织名称,对比凭证时,使用的sql语句
  --如果   <已经>  修改过组织名称,则  只能   <一个一个>组织的凭证进行核对,且          凭证列表视图  每个组织,都创建一次   
    select     T01.*   , T02.*
    from       DF_迁移交付_数据库1_凭证列表 as T01  Full Outer Join  DF_当前在用_数据库2_凭证列表 as T02  on  T01.迁移交付_数据库1_金蝶cloud_单独凭证索引 = T02.当前在用_数据库2_金蝶cloud_单独凭证索引
    where       T01.迁移交付_数据库1_金蝶cloud_单独凭证索引 is null  or  T02.当前在用_数据库2_金蝶cloud_单独凭证索引  is null
    order by   T01.迁移交付_数据库1_金蝶cloud_单独凭证索引 , T02.当前在用_数据库2_金蝶cloud_单独凭证索引
--------------------------------------------------------------

--------------------------------------------------------------