鉴于客户有修改会计日历的需求(将自然月改为每月25号结束)
--bak
select * into T_BD_ACCOUNTCALENDAR_sqlbak_20230511 from T_BD_ACCOUNTCALENDAR
select * into T_BD_ACCOUNTPERIOD_sqlbak_20230511 from T_BD_ACCOUNTCALENDAR
--update
--以系统预设会计日历为例
--改单据头
update T_BD_ACCOUNTCALENDAR set FPERIODTYPE = '3',FENDDATE = '2023-12-25 00:00:00.000' where fnumber='KJRL01_SYS' -- 期间类型 将自然月 改为月 FPERIODTYPE = '3',将结束日期改为 FENDDATE = '2023-12-25 00:00:00.000'
--改单据体
--将2023年以后的单据体数据清理掉(这里清理掉便于修改,修改完了可以在前台自己追加到想要的年度),
delete a from T_BD_ACCOUNTPERIOD a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR>2023
--鉴于只能修改未使用的期间,这里我们从5月开始修改
update a set a.FPERIODENDDATE = '2023-05-25 00:00:00.000' from T_BD_ACCOUNTPERIOD a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 5
update a set a.FPERIODSTARTDATE = '2023-05-26 00:00:00.000',a.FPERIODENDDATE = '2023-06-25 00:00:00.000' from T_BD_ACCOUNTPERIOD a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 6
update a set a.FPERIODSTARTDATE = '2023-06-26 00:00:00.000',a.FPERIODENDDATE = '2023-07-25 00:00:00.000' from T_BD_ACCOUNTPERIOD a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 7
update a set a.FPERIODSTARTDATE = '2023-07-26 00:00:00.000',a.FPERIODENDDATE = '2023-08-25 00:00:00.000' from T_BD_ACCOUNTPERIOD a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 8
update a set a.FPERIODSTARTDATE = '2023-08-26 00:00:00.000',a.FPERIODENDDATE = '2023-09-25 00:00:00.000' from T_BD_ACCOUNTPERIOD a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 9
update a set a.FPERIODSTARTDATE = '2023-09-26 00:00:00.000',a.FPERIODENDDATE = '2023-10-25 00:00:00.000' from T_BD_ACCOUNTPERIOD a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 10
update a set a.FPERIODSTARTDATE = '2023-10-26 00:00:00.000',a.FPERIODENDDATE = '2023-11-25 00:00:00.000' from T_BD_ACCOUNTPERIOD a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 11
update a set a.FPERIODSTARTDATE = '2023-11-26 00:00:00.000',a.FPERIODENDDATE = '2023-12-25 00:00:00.000' from T_BD_ACCOUNTPERIOD a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 12
---到这里就修改完了。如果想要2023以后的年度期间,可以直接去前台追加
推荐阅读