SQL更新-金蝶kis专业版的-计量单位
SQL更新金蝶kis专业版-计量单位
-------------------------------------------------------------
001-更新计量单位的基本计量单位标志
查看高清图片方法:点击图片---右键---在新标签页中打开图片(或用360浏览器全屏看图)

-------------------------------------------------------------
002-更新物料的计量单位
查看高清图片方法:点击图片---右键---在新标签页中打开图片(或用360浏览器全屏看图)

-------------------------------------------------------------
003-更新会计科目的计量单位
查看高清图片方法:点击图片---右键---在新标签页中打开图片(或用360浏览器全屏看图)

-------------------------------------------------------------
004-更新凭证列表中的计量单位
查看高清图片方法:点击图片---右键---在新标签页中打开图片(或用360浏览器全屏看图)

-------------------------------------------------------------
SQL语句:
------------------------
--************************************************--************************************************ --************************************************
--************************************************--************************************************ --************************************************
--说明:适合使用了[单个]---[计量单位]的账套,如果使用的计量单位比较多,更新的时候容易出现错误
--该操作前提条件:
--1.执行前必须做金蝶账套的备份
--2.操作人员必须熟悉金蝶软件
--3.操作人员必须熟悉sql数据库
--4.必须在所有凭证处于未记账的状态下执行
--5.sql语句的执行条件,请自行根据实际情况进行调整
--说明:执行后,请自行检测是否对金蝶软件操作有不良影响,我方不对这些sql语句的正确性负责
--************************************************--************************************************ --************************************************
--基础档案-07.计量单位
select * from t_MeasureUnit
-------------
select t_MeasureUnit.FMeasureUnitID As 单位内码 , t_MeasureUnit.FUnitGroupID As 单位组别 , t_MeasureUnit.FNumber As 单位代码 , t_MeasureUnit.FAuxClass As 未知1 , t_MeasureUnit.FName As 单位名称 , t_MeasureUnit.FConversation As 未知3 , t_MeasureUnit.FCoefficient As 系数 , t_MeasureUnit.FPrecision As 未知5 , t_MeasureUnit.FBrNo As 公司代码 , t_MeasureUnit.FItemID As 单位内码二 , t_MeasureUnit.FParentID As 上级内码 , t_MeasureUnit.FDeleted As 是否禁用 , t_MeasureUnit.FShortNumber As 单位简码 , t_MeasureUnit.FOperDate As 操作日期 , t_MeasureUnit.FScale As 修正值 , t_MeasureUnit.FStandard As 基本单位 , t_MeasureUnit.FControl As 未知2 , t_MeasureUnit.FModifyTime As 未知4 , t_MeasureUnit.FSystemType As 系统标示 , t_MeasureUnit.UUID As 未知6
from t_MeasureUnit
--where FName = '吨'
--基础档案-06.计量单位组
select * from t_UnitGroup
-------------
select t_UnitGroup.FUnitGroupID As 单位组内码 , t_UnitGroup.FName As 单位组名称 , t_UnitGroup.FDefaultUnitID As 默认单位内码
from t_UnitGroup
-------------
--基础档案-06.计量单位组连接计量单位
select T1.FUnitGroupID As 单位组_组内码 , T1.FName As 单位组_组名称 , T1.FDefaultUnitID As 单位组_基本单位内码
, T2.FUnitGroupID As 单位_组内码 , T2.FMeasureUnitID as 单位_单位内码 , T2.FNumber as 单位_单位代码 , T2.FName as 单位_单位名称 , T2.FStandard as 单位_是否基本单位1是0否
from t_UnitGroup as T1
left join t_MeasureUnit as T2 on T1.FUnitGroupID = T2.FUnitGroupID
--************************************************
--更新计量单位的名称
update t_MeasureUnit
set FNumber = 'TON'
, FName = '吨'
where FMeasureUnitID = 202
------------------------------------------------------------
--根据计量单位代码,更新计量单位的名称
--比如---套
update t_MeasureUnit
set FName = '套'
where FNumber = 'TAO'
--比如---台
update t_MeasureUnit
set FName = '台'
where FNumber = 'TAI'
--比如---块
update t_MeasureUnit
set FName = '块'
where FNumber = 'KUAI'
--比如---只
update t_MeasureUnit
set FName = '只'
where FNumber = 'ZHI'
--比如---件
update t_MeasureUnit
set FName = '件'
where FNumber = 'pcs'
--比如---栋
update t_MeasureUnit
set FName = '栋'
where FNumber = 'DONG'
--比如---辆
update t_MeasureUnit
set FName = '辆'
where FNumber = 'LIANG'
--比如---批
update t_MeasureUnit
set FName = '批'
where FNumber = 'PI'
--比如---一批
update t_MeasureUnit
set FName = '一批'
where FNumber = 'YIPI'
--------------------------
--比如---米
update t_MeasureUnit
set FName = '米'
where FNumber = 'M'
--比如---分米
update t_MeasureUnit
set FName = '分米'
where FNumber = 'DM'
--比如---厘米
update t_MeasureUnit
set FName = '厘米'
where FNumber = 'CM'
--比如---毫米
update t_MeasureUnit
set FName = '毫米'
where FNumber = 'MM'
--------------------------
--比如---平方米
update t_MeasureUnit
set FName = '平方米'
where FNumber = 'SQM'
--比如---平方分米
update t_MeasureUnit
set FName = '平方分米'
where FNumber = 'SQDM'
--比如---平方厘米
update t_MeasureUnit
set FName = '平方厘米'
where FNumber = 'SQCM'
--------------------------
--比如---立方米
update t_MeasureUnit
set FName = '立方米'
where FNumber = 'CUM'
--比如---立方分米
update t_MeasureUnit
set FName = '立方分米'
where FNumber = 'CUDM'
--比如---立方厘米
update t_MeasureUnit
set FName = '立方厘米'
where FNumber = 'CUCM'
----------------------
--比如---吨
update t_MeasureUnit
set FName = '吨'
where FNumber = 'TON'
--比如---千克
update t_MeasureUnit
set FName = '公斤(千克)'
where FNumber = 'KG'
--比如---克
update t_MeasureUnit
set FName = '克'
where FNumber = 'G'
--************************************************
--1>.更新[计量单位]表----[是否默认]字段
----------------------------------------------
--第1步,更新[mdf计量组]中----[是否默认]的字段为[0](即取消所有的默认标志)
update t_MeasureUnit
set FStandard = 0
where t_MeasureUnit.FUnitGroupID in (
select DISTINCT T1.FUnitGroupID As 单位组_组内码
from t_UnitGroup as T1 left join t_MeasureUnit as T2 on T1.FUnitGroupID = T2.FUnitGroupID
where T1.FName = 'mdf计量组' --[变量1]
)
--第2步,更新[mdf计量组]中----[是否默认]的字段为[1](重新设置,默认标志),比如将[mdf计量组]中的[吨]为该组的默认单位
update t_MeasureUnit
set FStandard = 1
where t_MeasureUnit.FMeasureUnitID in (
select DISTINCT T2.FMeasureUnitID as 单位_单位内码
from t_UnitGroup as T1 left join t_MeasureUnit as T2 on T1.FUnitGroupID = T2.FUnitGroupID
where T1.FName = 'mdf计量组' --[变量1]
and T2.FName = '吨' --[变量2]
)
--************************************************
--2>.更新[计量单位组]表----[默认单位内码]字段 ,
--将mdf计量组中,默认单位pcs更新为吨
update t_UnitGroup
set FDefaultUnitID = (
select DISTINCT T2.FMeasureUnitID as 单位_单位内码
from t_UnitGroup as T1 left join t_MeasureUnit as T2 on T1.FUnitGroupID = T2.FUnitGroupID
where T1.FName = 'mdf计量组' --[变量1]
and T2.FName = '吨' --[变量2]
)
--************************************************ --************************************************ --************************************************
--基础档案-04.产品表
select * from t_ICItem
-------------
select t_ICItem.FItemID As 产品内码 , t_ICItem.FName As 产品名称 , t_ICItem.FHelpCode As 助记码 , t_ICItem.FDeleted As 是否禁用 , t_ICItem.FShortNumber As 产品简码 , t_ICItem.FNumber As 产品代码 , t_ICItem.FModifyTime As 未知3 , t_ICItem.FParentID As 产品类代码 , t_ICItem.FBrNo As 公司代码 , t_ICItem.FTopID As 最高级 , t_ICItem.FRP As 收付标志 , t_ICItem.FOmortize As 未知4 , t_ICItem.FOmortizeScale As 未知5 , t_ICItem.FForSale As 是否销售1 , t_ICItem.FStaCost As 未知9 , t_ICItem.FOrderPrice As 订货单价 , t_ICItem.FOrderMethod As 订货方法 , t_ICItem.FPriceFixingType As 未知7 , t_ICItem.FSalePriceFixingType As 未知8 , t_ICItem.FPerWastage As 未知6 , t_ICItem.FARAcctID As 应收科目 , t_ICItem.FPlanPriceMethod As 计划方法 , t_ICItem.FPlanClass As 计划类型 , t_ICItem.FModel As 规格型号 , t_ICItem.FAlias As 别名 , t_ICItem.FApproveNo As 批准文号 , t_ICItem.FAuxClassID As 辅助属性类别 , t_ICItem.FDefaultLoc As 缺省库房 , t_ICItem.FEquipmentNum As 设备编码 , t_ICItem.FErpClsID As 产品属性 , t_ICItem.FFullName As 全名 , t_ICItem.FHighLimit As 最高存量 , t_ICItem.FIsEquipment As 是否设备 , t_ICItem.FIsSparePart As 是否备件 , t_ICItem.FLowLimit As 最低存量 , t_ICItem.FOrderUnitID As 采购计量单位 , t_ICItem.FPreDeadLine As 未知91 , t_ICItem.FProductUnitID As 生产计量单位 , t_ICItem.FQtyDecimal As 数量精度 , t_ICItem.FSaleUnitID As 销售计量单位 , t_ICItem.FSecCoefficient As 辅助计量单位换算率 , t_ICItem.FSecUnitDecimal As 未知92 , t_ICItem.FSecInv As 安全库存 , t_ICItem.FSecUnitID As 辅助计量单位 , t_ICItem.FSerialClassID As 未知93 , t_ICItem.FSource As 来源 , t_ICItem.FSPID As 缺省仓位 , t_ICItem.FStoreUnitID As 库存计量单位 , t_ICItem.FTypeID As 产品分类 , t_ICItem.FUnitGroupID As 单位组内码 , t_ICItem.FUnitID As 单位内码 , t_ICItem.FUseState As 使用状态 , t_ICItem.FABCCls As ABC类别 , t_ICItem.FAcctID As 存货科目 , t_ICItem.FAdminAcctID As 代管物资科目 , t_ICItem.FAPAcctID As 应付科目 , t_ICItem.FBatchManager As 是否采用业务批次管理 , t_ICItem.FBatchQty As 订货批量 , t_ICItem.FBeforeExpire As 失效提前期_天 , t_ICItem.FBookPlan As 是否需要进行订补货计划的运算 , t_ICItem.FCheckCycle As 盘点周期 , t_ICItem.FCheckCycUnit As 盘点周期单位 , t_ICItem.FClass As 产品类别 , t_ICItem.FCostAcctID As 成本科目 , t_ICItem.FCostDiffRate As 成本差异科目 , t_ICItem.FCostProject As 成本项目 , t_ICItem.FDaysPer As 每周月第_天 , t_ICItem.FDepartment As 部门 , t_ICItem.FGoodSpec As 税目代码内码 , t_ICItem.FISKFPeriod As 是否进行保质期管理 , t_ICItem.FIsSale As 是否销售2 , t_ICItem.FIsSnManage As 未知2 , t_ICItem.FIsSpecialTax As 是否农林计税 , t_ICItem.FKFPeriod As 保质期_天 , t_ICItem.FLastCheckDate As 上次盘点日期 , t_ICItem.FNote As 备注 , t_ICItem.FOIHighLimit As 外购超收比例_ , t_ICItem.FOILowLimit As 外购欠收比例_ , t_ICItem.FOrderRector As 采购负责人内码 , t_ICItem.FPlanPrice As 计划单价 , t_ICItem.FPOHghPrcMnyType As 采购最高价币别 , t_ICItem.FPOHighPrice As 采购最高价 , t_ICItem.FPriceDecimal As 单价精度 , t_ICItem.FProfitRate As 毛利率 , t_ICItem.FSaleAcctID As 销售科目 , t_ICItem.FSalePrice As 销售单价 , t_ICItem.FSaleTaxAcctID As 税金科目 , t_ICItem.FSOHighLimit As 销售超交比例_ , t_ICItem.FSOLowLimit As 销售欠交比例_ , t_ICItem.FSOLowPrc As 销售最低价 , t_ICItem.FSOLowPrcMnyType As 销售最低价币别 , t_ICItem.FStockPrice As 未知98 , t_ICItem.FStockTime As 是否需要库龄管理 , t_ICItem.FTaxRate As 税率_ , t_ICItem.FTrack As 计价方法 , t_ICItem.FWWHghPrc As 委外加工最高价 , t_ICItem.FWWHghPrcMnyType As 委外加工最高价币别 , t_ICItem.FCBBmStandardID As 分配标准内码 , t_ICItem.FBatChangeEconomy As 变动提前期批量 , t_ICItem.FBatchAppendQty As 批量增量 , t_ICItem.FBatFixEconomy As 固定经济批量 , t_ICItem.FCUUnitID As 常用计量单位 , t_ICItem.FDailyConsume As 日消耗量 , t_ICItem.FDefaultRoutingID As 默认工艺路线 , t_ICItem.FDefaultWorkTypeID As 默认生产类型 , t_ICItem.FFixLeadTime As 固定提前期 , t_ICItem.FInHighLimit As 完工超收比例_ , t_ICItem.FInLowLimit As 完工欠收比例_ , t_ICItem.FLeadTime As 提前期 , t_ICItem.FLowestBomCode As 低层码 , t_ICItem.FMRPCon As MRP计算是否合并需求 , t_ICItem.FOrderInterVal As 订货间隔期_天 , t_ICItem.FOrderPoint As 再订货点 , t_ICItem.FOrderTrategy As 订货策略 , t_ICItem.FPlanner As 计划员 , t_ICItem.FPlanPoint As 计划时界_天 , t_ICItem.FPlanTrategy As 计划策略 , t_ICItem.FProductPrincipal As 生产负责人 , t_ICItem.FPutInteger As 投料自动取整 , t_ICItem.FQtyMax As 最大订货量 , t_ICItem.FQtyMin As 最小订货量 , t_ICItem.FRequirePoint As 需求时界_天 , t_ICItem.FTotalTQQ As 累计提前期 , t_ICItem.FMRPOrder As MRP计算是否产生采购申请 , t_ICItem.FChartNumber As 图号 , t_ICItem.FCubicMeasure As 长度单位 , t_ICItem.FGrossWeight As 毛重 , t_ICItem.FHeight As 高度 , t_ICItem.FIsKeyItem As 是否关键件 , t_ICItem.FLength As 长度 , t_ICItem.FMaund As 重量单位 , t_ICItem.FNetWeight As 净重 , t_ICItem.FSize As 体积 , t_ICItem.FVersion As 版本号 , t_ICItem.FWidth As 宽度 , t_ICItem.FChgFeeRate As 变动制造费用分配率 , t_ICItem.FOutMachFee As 单位委外加工费 , t_ICItem.FPieceRate As 单位计件工资 , t_ICItem.FStandardCost As 单位标准成本 , t_ICItem.FStandardManHour As 单位标准工时_小时 , t_ICItem.FStdFixFeeRate As 单位标准固定制造费用金额 , t_ICItem.FStdPayRate As 标准工资率 , t_ICItem.FIdentifier As 检验员 , t_ICItem.FInspectionLevel As 检验方式 , t_ICItem.FInspectionProject As 检验方案 , t_ICItem.FIsListControl As 未知1 , t_ICItem.FOtherChkMde As 其他检验方式 , t_ICItem.FProChkMde As 产品检验方式 , t_ICItem.FSOChkMde As 发货检验方式 , t_ICItem.FStkChkAlrm As 库存周期检验预警提前期_天 , t_ICItem.FStkChkMde As 库存检验方式 , t_ICItem.FStkChkPrd As 库存检验周期_天 , t_ICItem.FWthDrwChkMde As 退货检验方式 , t_ICItem.FWWChkMde As 委外加工检验方式
from t_ICItem
--************************************************
----------------------------------------------
--1>.更新[物料表]的[计量单位组]参数,
--比如,将[指定物料]的----[默认计量单位组],改为:[mdf计量组]
update t_ICItem
set FUnitGroupID = (
select FUnitGroupID As 单位组_组内码
from t_UnitGroup
where FName = 'mdf计量组'
)
where FNumber = '[物料代码]'
and FName = '[物料名称]'
--------------------------------
--2>.更新[物料表]的[默认计量单位]参数,
--比如,将[指定物料]的----[默认计量单位],改为:[mdf计量组]中的[默认单位]
update t_ICItem
set FUnitID = (
select FDefaultUnitID As 单位组_基本单位内码
from t_UnitGroup
where FName = 'mdf计量组'
)
where FNumber = '[物料代码]'
and FName = '[物料名称]'
--************************************************ --************************************************ --************************************************
--基础档案-会计科目
select * from t_Account --会计科目档案
--------------------------
select T1.FNumber as T1科目代码 , T1.FName as T1科目名称 , T1.FUnitGroupID as T1计量单位组内码 , T1.FMeasureUnitID as T1计量单位内码
, T2.FUnitGroupID as T2计量单位组内码 , T2.FName as T2计量单位组名称
, T3.FMeasureUnitID as T3计量单位内码 , T3.FNumber as T3计量单位代码 , T3.FName as T3计量单位名称
from t_Account as T1
left join t_UnitGroup as T2 on T1.FUnitGroupID = T2.FUnitGroupID
left join t_MeasureUnit as T3 on T1.FMeasureUnitID = T3.FMeasureUnitID
where T1.FUnitGroupID <> 0 or T1.FMeasureUnitID <> 0
--************************************************
----------------------------------------------
--1>.更新[会计科目]的[计量单位组]参数,
--比如,改为:[mdf计量组]
update t_Account
set FUnitGroupID = (
select FUnitGroupID As 单位组_组内码
from t_UnitGroup
where FName = 'mdf计量组' --[变量1]
)
where FUnitGroupID = '181' --变量2:该参数必填[原计量组----内码]
and FNumber = '[科目代码]'
and FName = '[科目名称]'
---更新会计科目的指定[缺省单位]
update t_Account
set FMeasureUnitID = (
select DISTINCT T2.FMeasureUnitID as 单位_单位内码
from t_UnitGroup as T1 left join t_MeasureUnit as T2 on T1.FUnitGroupID = T2.FUnitGroupID
where T1.FName = 'mdf计量组' --[变量1]
and T2.FName = '吨' --[变量2]
)
where FMeasureUnitID ='182' --变量3:该参数必填[原计量单位----内码]
and FNumber = '[科目代码]'
and FName = '[科目名称]'
--************************************************ --************************************************ --************************************************
----------------
--凭证分录表
select * from t_VoucherEntry
--------------------------
--凭证
select t_Voucher.FYear As 会计年度 , t_Voucher.FPeriod As 会计期间 , t_Voucher.FDate As 凭证日期 , t_VoucherGroup.FName As 凭证字名称 , t_Voucher.FNumber As 凭证号 , t_VoucherEntry.FEntryID As 分录号 , t_VoucherEntry.FExplanation As 摘要 , t_Account.FNumber As 科目代码 , t_Account.FFullName As 科目全名 , t_VoucherEntry.FDC As 借贷方向 , t_VoucherEntry.FAmount As 本位币金额 , t_Currency.FNumber As 币别代码 , t_Currency.FName As 币别名称 , t_VoucherEntry.FExchangeRate As 汇率_凭证分录表 , t_user.FName As 用户名称 , t_Voucher.FChecked As 是否审核 , t_Voucher.FPosted As 是否过账 , t_Voucher.FReference As 参考信息 , t_Voucher.FDebitTotal As 借方金额合计 , t_Voucher.FCreditTotal As 贷方金额合计 , t_Voucher.FPreparerID As 制单人 , t_Voucher.FSerialNum As 凭证序号 , t_VoucherEntry.FDetailID As 核算项目使用状况内码_凭证分录表 , t_VoucherEntry.FAmountFor As 原币金额 , t_VoucherEntry.FAccountID2 As 对方科目 , t_Account.FName As 科目名称
,t_VoucherEntry.FQuantity as 数量 , t_VoucherEntry.FUnitPrice as 单价 , t_VoucherEntry.FMeasureUnitID as 凭证分录_计量单位内码 , t_MeasureUnit.FMeasureUnitID as 计量单位_计量单位内码 , t_MeasureUnit.FNumber As 单位代码 , t_MeasureUnit.FName As 单位名称
from t_Voucher
left outer join t_VoucherEntry on t_Voucher.FVoucherID = t_VoucherEntry.FVoucherID
left outer join t_VoucherGroup on t_Voucher.FGroupID = t_VoucherGroup.FGroupID
left outer join t_user on t_Voucher.FPreparerID = t_user.FUserID
left outer join t_Account on t_VoucherEntry.FAccountID = t_Account.FAccountID
left outer join t_Currency on t_VoucherEntry.FCurrencyID = t_Currency.FCurrencyID
left outer join t_MeasureUnit on t_VoucherEntry.FMeasureUnitID = t_MeasureUnit.FMeasureUnitID
where t_VoucherEntry.FMeasureUnitID <> 0
--************************************************
--------------------------------
---更新凭证分录中的计量单位
update t_VoucherEntry
set t_VoucherEntry.FMeasureUnitID = (
select DISTINCT T2.FMeasureUnitID as 单位_单位内码
from t_UnitGroup as T1 left join t_MeasureUnit as T2 on T1.FUnitGroupID = T2.FUnitGroupID
where T1.FName = 'mdf计量组' --[变量1]---[计量单位]------档案的名称
and T2.FName = '吨' --[变量2]---[计量单位组]----档案的名称
)
where t_VoucherEntry.FMeasureUnitID ='182' --变量3:凭证分录的计量单位原内码
-------------------------------------------------------------

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