解决方案: |
2000年的数据:
1、修该salebillvouchs、po_pomain的非法日期
1)update salebillvouchs set ddate=#1999-12-30# where ddate<#2000-1-1#
2)po_pomain表字段dpodate的值请手工修改,共有五条记录(年度为200,请改为2000)。
2、升级到821
3、将数据引入852后,升级前在数据库中增加视图caq_inventory,caq_amoname,caq_depdata,caq_deptauthex,caq_mxb,caq_predepdata,caq_serviceprice,caq_userproperty,然后升级。
CREATE VIEW ca_inventory AS SELECT Inventory.cInvCode, Inventory.cInvName, Inventory.cInvStd,Inventory.iInvRCost,Inventory.cInvCCode, ComputationUnit.cComUnitName AS cInvM_Unit,InventoryClass.cInvCName FROM Inventory LEFT OUTER JOIN InventoryClass ON Inventory.cInvCCode = InventoryClass.cInvCCode LEFT OUTER JOIN ComputationUnit ON Inventory.cComunitCode = ComputationUnit.cComunitCode
go
CREATE view caq_amoname as select distinct 1 as amotypeno,‘0‘ as amotype,‘材料费用‘ as amotypename,b.cinvcode as amoid,b.cinvname as amoname,b.cinvccode as cinvccode ,b.cinvcname as cinvcname,b.cinvstd as cinvstd,b.cinvm_unit as cunit from ca_amoct a,ca_inventory b where a.camoid= b.cinvcode Union select 2 as amotypeno,‘0‘,‘材料费用‘,‘-1‘,‘废品回收‘,‘‘,‘‘,‘‘,‘‘ Union select 3 as amotypeno,‘3‘,‘制造费用‘,camoid,camoname,‘‘,‘‘,‘‘,‘‘ from caq_manufacture Union select 4 as amotypeno,‘2‘,‘辅助费用‘,cprocedureid,cprocedurename,‘‘,‘‘,‘‘,‘‘ from ca_predf where bisauxi<>0 Union select 5 as amotypeno,‘4‘,‘其他费用‘,camoid,camoname,‘‘,‘‘,‘‘,‘‘ from caq_others Union select 6 as amotypeno,‘1‘,‘人工费用‘,‘‘,‘直接人工‘,‘‘,‘‘,‘‘,‘‘
go
CREATE view caq_userproperty as select cuserid,caccode as cdeptid ,cfuncid from aa_holdauth where cbusobid=‘department‘
go
CREATE view caq_serviceprice as select max(iperiod) as iperiod,max(cprocedureid) as cprocedureid,sum(itotalamo)/sum(iqua) as price from ca_samoct group by cprocedureid
go
CREATE view caq_predepdata as select ‘专用‘ as cType,a.iperiod,a.cdeptid,0 as amotypeno,‘0‘ as amotype ,a.cmatid as amoid,a.iqua as curqua,a.imatqua as curamo,b.irestqua as endqua,b.iprice * b.irestqua as endamo from ca_mabsw a left join ca_enmmc b on a.cdeptid=b.cdeptid and a.cmatid=b.cmatid and a.iperiod = b.iperiod where a.cppid is null union SELECT ‘共用‘ ,a.iperiod, a.cdeptid, 0 AS amotypeno, ‘0‘ AS amotype, a.cmatid AS amoid,a.iqua AS curqua, a.imatqua AS curamo, b.irestqua AS endqua,b.iprice * b.irestqua AS endamo FROM ca_mabsw a LEFT JOIN ca_enmom b ON a.cdeptid = b.cdeptid AND a.cmatid = b.cmatid AND a.iperiod = b.iperiod where a.cppid is not null Union select ‘废品‘ ,max(a.iperiod),max(b.cdepcode),1,‘0‘,‘-1‘,0,sum(irecamo),0,0 from ca_waspr a,productstructureex b where a.cppid = b.cpspcode group by cdepcode Union select ‘‘ ,iperiod,cdeptid,2,‘3‘,camoid,0,imanamo,0,0 from ca_manct Union select ‘‘ ,a.iperiod,a.cdeptid,3,‘2‘,a.cprocedureid,a.iqua,a.iqua* b.price,0,0 from ca_asscw a , caq_serviceprice b where a.iperiod=b.iperiod and a.cprocedureid=b.cprocedureid Union select ‘‘ ,max(iperiod),max(cdeptid),4,‘4‘,max(cothamoid),0,sum(iothamo),0,0 from ca_onlia group by cdeptid,iperiod,cothamoid Union select ‘‘ ,iperiod,cdeptid,5,‘1‘,‘‘,0,iDirectPay,0,0 from ca_dirma
go
CREATE view caq_depdata as select a.iperiod as 期间,a.cdeptid as 部门编码,b.cdepname as 部门名称, a.amotypeno as 费用类型序号,a.amotype as 费用类型编码,c.amotypename as 费用类型名称,a.cType as 材料类别, c.cinvccode as 存货分类编码,c.cinvcname as 存货分类名称,a.amoid as 费用明细编码,c.amoname as 费用明细名称, a.curqua as 本期发生数量,a.curamo as 本期发生金额, a.endqua as 期末盘存数量,a.endamo as 期末盘存金额 from caq_predepdata a,department b,caq_amoname c Where a.cdeptid = b.cDepCode and a.amotype=c.amotype and a.amoid=c.amoid
go
CREATE view CAQ_DeptAuthEx as SELECT CAQ_UserProperty.cUserID, Department.cDepCode,Department.cDepName FROM Department INNER JOIN CAQ_UserProperty ON Department.cDepCode = CAQ_UserProperty.cDeptID
go
CREATE view caq_mxb as select a.iperiod as 期间,a.cppid as 产品编码,f.cinvname as 产品名称,a.cbatch as 批号, b.cinvstd as 规格型号,b.cunit as 单位, b.cinvccode as 存货分类编码,b.cinvcname as 存货分类名称 , c.cdepcode as 部门编码,d.cdepname as 部门名称, b.amotypeno as 费用类型序号,b.amotype as 费用类型编码,b.amotypename as 费用类型名称, case when ifinqua=0 then 0 else iqua*(1-0.6)/(case when ifinqua=0 then 1 else ifinqua end) end as 完工数量单位成本, iqua *(1-0.5) as 完工数量总成本, iqua * 1 as 在产数量总成本, iqua as 产品数量总成本, case when ifinqua=0 then 0 else itotalamo*(1-0.5)/(case when ifinqua=0 then 1 else ifinqua end) end as 完工金额单位成本, itotalamo *(1-0.5) as 完工金额总成本, itotalamo * 1 as 在产金额总成本, itotalamo as 产品金额总成本, ifinpdtunitamo * iIntoamo as 入库金额总成本, case when ifinqua=0 then 0 else iqua*(1-0.5)/(case when ifinqua=0 then 1 else ifinqua end)*e.iIntoamo end as 入库数量总成本, 0.5 As 在产分配率 from ca_amoct a,caq_amoname b,productstructure c,department d,ca_compd e,inventory f Where a.camotype = b.amotype And a.camoid = b.amoid And a.cPPid = C.cpspcode and c.cdepcode=d.cdepcode and a.iperiod=e.iperiod and a.cppid= e.cppid and a.cbatch = e.cbatch and a.cppid=f.cinvcode
go
升级成功后再重建视图caq_mxb
CREATE view caq_mxb as select a.iperiod as 期间,a.cppid as 产品编码,f.cinvname as 产品名称,a.cbatch as 批号, b.cinvstd as 规格型号,b.cunit as 单位, b.cinvccode as 存货分类编码,b.cinvcname as 存货分类名称 , c.cdepcode as 部门编码,d.cdepname as 部门名称, b.amotypeno as 费用类型序号,b.amotype as 费用类型编码,b.amotypename as 费用类型名称, case when ifinqua=0 then 0 else iqua*(1-onpration)/(case when ifinqua=0 then 1 else ifinqua end) end as 完工数量单位成本, iqua *(1-onpration) as 完工数量总成本, iqua * onpration as 在产数量总成本, iqua as 产品数量总成本, case when ifinqua=0 then 0 else itotalamo*(1-onpration)/(case when ifinqua=0 then 1 else ifinqua end) end as 完工金额单位成本, itotalamo *(1-onpration) as 完工金额总成本, itotalamo * onpration as 在产金额总成本, itotalamo as 产品金额总成本, ifinpdtunitamo * iIntoamo as 入库金额总成本, case when ifinqua=0 then 0 else iqua*(1-onpration)/(case when ifinqua=0 then 1 else ifinqua end)*e.iIntoamo end as 入库数量总成本, onpration As 在产分配率 from ca_amoct a,caq_amoname b,productstructure c,department d,ca_compd e,inventory f Where a.camotype = b.amotype And a.camoid = b.amoid And a.cPPid = C.cpspcode and c.cdepcode=d.cdepcode and a.iperiod=e.iperiod and a.cppid= e.cppid and a.cbatch = e.cbatch and a.cppid=f.cinvcode
2003年帐套:
1、在salebillvouchs删除autoid=(164,166,343)
delete from salebillvouchs where autoid in(164,166,343)
2、先升级到821
3、将数据引入852后,升级前在数据库中增加视图caq_inventory,caq_amoname,caq_depdata,caq_deptauthex,caq_mxb,caq_predepdata,caq_serviceprice,caq_userproperty,然后升级。
CREATE VIEW ca_inventory AS SELECT Inventory.cInvCode, Inventory.cInvName, Inventory.cInvStd,Inventory.iInvRCost,Inventory.cInvCCode, ComputationUnit.cComUnitName AS cInvM_Unit,InventoryClass.cInvCName FROM Inventory LEFT OUTER JOIN InventoryClass ON Inventory.cInvCCode = InventoryClass.cInvCCode LEFT OUTER JOIN ComputationUnit ON Inventory.cComunitCode = ComputationUnit.cComunitCode
go
CREATE view caq_amoname as select distinct 1 as amotypeno,‘0‘ as amotype,‘材料费用‘ as amotypename,b.cinvcode as amoid,b.cinvname as amoname,b.cinvccode as cinvccode ,b.cinvcname as cinvcname,b.cinvstd as cinvstd,b.cinvm_unit as cunit from ca_amoct a,ca_inventory b where a.camoid= b.cinvcode Union select 2 as amotypeno,‘0‘,‘材料费用‘,‘-1‘,‘废品回收‘,‘‘,‘‘,‘‘,‘‘ Union select 3 as amotypeno,‘3‘,‘制造费用‘,camoid,camoname,‘‘,‘‘,‘‘,‘‘ from caq_manufacture Union select 4 as amotypeno,‘2‘,‘辅助费用‘,cprocedureid,cprocedurename,‘‘,‘‘,‘‘,‘‘ from ca_predf where bisauxi<>0 Union select 5 as amotypeno,‘4‘,‘其他费用‘,camoid,camoname,‘‘,‘‘,‘‘,‘‘ from caq_others Union select 6 as amotypeno,‘1‘,‘人工费用‘,‘‘,‘直接人工‘,‘‘,‘‘,‘‘,‘‘
go
CREATE view caq_userproperty as select cuserid,caccode as cdeptid ,cfuncid from aa_holdauth where cbusobid=‘department‘
go
CREATE view caq_serviceprice as select max(iperiod) as iperiod,max(cprocedureid) as cprocedureid,sum(itotalamo)/sum(iqua) as price from ca_samoct group by cprocedureid
go
CREATE view caq_predepdata as select ‘专用‘ as cType,a.iperiod,a.cdeptid,0 as amotypeno,‘0‘ as amotype ,a.cmatid as amoid,a.iqua as curqua,a.imatqua as curamo,b.irestqua as endqua,b.iprice * b.irestqua as endamo from ca_mabsw a left join ca_enmmc b on a.cdeptid=b.cdeptid and a.cmatid=b.cmatid and a.iperiod = b.iperiod where a.cppid is null union SELECT ‘共用‘ ,a.iperiod, a.cdeptid, 0 AS amotypeno, ‘0‘ AS amotype, a.cmatid AS amoid,a.iqua AS curqua, a.imatqua AS curamo, b.irestqua AS endqua,b.iprice * b.irestqua AS endamo FROM ca_mabsw a LEFT JOIN ca_enmom b ON a.cdeptid = b.cdeptid AND a.cmatid = b.cmatid AND a.iperiod = b.iperiod where a.cppid is not null Union select ‘废品‘ ,max(a.iperiod),max(b.cdepcode),1,‘0‘,‘-1‘,0,sum(irecamo),0,0 from ca_waspr a,productstructureex b where a.cppid = b.cpspcode group by cdepcode Union select ‘‘ ,iperiod,cdeptid,2,‘3‘,camoid,0,imanamo,0,0 from ca_manct Union select ‘‘ ,a.iperiod,a.cdeptid,3,‘2‘,a.cprocedureid,a.iqua,a.iqua* b.price,0,0 from ca_asscw a , caq_serviceprice b where a.iperiod=b.iperiod and a.cprocedureid=b.cprocedureid Union select ‘‘ ,max(iperiod),max(cdeptid),4,‘4‘,max(cothamoid),0,sum(iothamo),0,0 from ca_onlia group by cdeptid,iperiod,cothamoid Union select ‘‘ ,iperiod,cdeptid,5,‘1‘,‘‘,0,iDirectPay,0,0 from ca_dirma
go
CREATE view caq_depdata as select a.iperiod as 期间,a.cdeptid as 部门编码,b.cdepname as 部门名称, a.amotypeno as 费用类型序号,a.amotype as 费用类型编码,c.amotypename as 费用类型名称,a.cType as 材料类别, c.cinvccode as 存货分类编码,c.cinvcname as 存货分类名称,a.amoid as 费用明细编码,c.amoname as 费用明细名称, a.curqua as 本期发生数量,a.curamo as 本期发生金额, a.endqua as 期末盘存数量,a.endamo as 期末盘存金额 from caq_predepdata a,department b,caq_amoname c Where a.cdeptid = b.cDepCode and a.amotype=c.amotype and a.amoid=c.amoid
go
CREATE view CAQ_DeptAuthEx as SELECT CAQ_UserProperty.cUserID, Department.cDepCode,Department.cDepName FROM Department INNER JOIN CAQ_UserProperty ON Department.cDepCode = CAQ_UserProperty.cDeptID
go
CREATE view caq_mxb as select a.iperiod as 期间,a.cppid as 产品编码,f.cinvname as 产品名称,a.cbatch as 批号, b.cinvstd as 规格型号,b.cunit as 单位, b.cinvccode as 存货分类编码,b.cinvcname as 存货分类名称 , c.cdepcode as 部门编码,d.cdepname as 部门名称, b.amotypeno as 费用类型序号,b.amotype as 费用类型编码,b.amotypename as 费用类型名称, case when ifinqua=0 then 0 else iqua*(1-0.6)/(case when ifinqua=0 then 1 else ifinqua end) end as 完工数量单位成本, iqua *(1-0.5) as 完工数量总成本, iqua * 1 as 在产数量总成本, iqua as 产品数量总成本, case when ifinqua=0 then 0 else itotalamo*(1-0.5)/(case when ifinqua=0 then 1 else ifinqua end) end as 完工金额单位成本, itotalamo *(1-0.5) as 完工金额总成本, itotalamo * 1 as 在产金额总成本, itotalamo as 产品金额总成本, ifinpdtunitamo * iIntoamo as 入库金额总成本, case when ifinqua=0 then 0 else iqua*(1-0.5)/(case when ifinqua=0 then 1 else ifinqua end)*e.iIntoamo end as 入库数量总成本, 0.5 As 在产分配率 from ca_amoct a,caq_amoname b,productstructure c,department d,ca_compd e,inventory f Where a.camotype = b.amotype And a.camoid = b.amoid And a.cPPid = C.cpspcode and c.cdepcode=d.cdepcode and a.iperiod=e.iperiod and a.cppid= e.cppid and a.cbatch = e.cbatch and a.cppid=f.cinvcode
go
升级成功后再重建视图caq_mxb
CREATE view caq_mxb as select a.iperiod as 期间,a.cppid as 产品编码,f.cinvname as 产品名称,a.cbatch as 批号, b.cinvstd as 规格型号,b.cunit as 单位, b.cinvccode as 存货分类编码,b.cinvcname as 存货分类名称 , c.cdepcode as 部门编码,d.cdepname as 部门名称, b.amotypeno as 费用类型序号,b.amotype as 费用类型编码,b.amotypename as 费用类型名称, case when ifinqua=0 then 0 else iqua*(1-onpration)/(case when ifinqua=0 then 1 else ifinqua end) end as 完工数量单位成本, iqua *(1-onpration) as 完工数量总成本, iqua * onpration as 在产数量总成本, iqua as 产品数量总成本, case when ifinqua=0 then 0 else itotalamo*(1-onpration)/(case when ifinqua=0 then 1 else ifinqua end) end as 完工金额单位成本, itotalamo *(1-onpration) as 完工金额总成本, itotalamo * onpration as 在产金额总成本, itotalamo as 产品金额总成本, ifinpdtunitamo * iIntoamo as 入库金额总成本, case when ifinqua=0 then 0 else iqua*(1-onpration)/(case when ifinqua=0 then 1 else ifinqua end)*e.iIntoamo end as 入库数量总成本, onpration As 在产分配率 from ca_amoct a,caq_amoname b,productstructure c,department d,ca_compd e,inventory f Where a.camotype = b.amotype And a.camoid = b.amoid And a.cPPid = C.cpspcode and c.cdepcode=d.cdepcode and a.iperiod=e.iperiod and a.cppid= e.cppid and a.cbatch = e.cbatch and a.cppid=f.cinvcode
4、在salebillvouchs中手工加入删除的记录,字段sbvid的值可以通过查询销售发票主表发票号得到。
|