2024年5月8日发(作者:)
SQL简单数据的出错分析及修复方法:
简单的数据结果表
:
1)基本信息表
名称
职员信息表
库存商品信息表
往来单位
摘要表
地区信息表
会计科目表
仓库信息表
部门信息表
2)表格单据清单
employee
Ptype
btype
Abstract
AreaType
atypecw
Stock
Department
代码
名称
订单索引表
订单明细表
单据索引表
进货单明细表
销售单明细表
零售单索引表
零售单明细表
其他单据明细表(比如调拨单,收.付款等)
凭证明细表
3)其他常用表:
DlyndxOrder
BakDlyOrder
Dlyndx
Dlybuy
BakDlyOrder
Dlyndxretail
Dlyretail
Dlyother
Dlya
代码
名称
操作员表
系统初始值表
系统配置表
单据配置表
单据类型表
自动盘赢盘亏表
列配置表
商品库存分布表
Loginuser
Sysdata
Syscon
vchcon
Vchtype
CheckedCount
ColConfig
GoodsStocks
代码
期初商品库存分布表
库存上下限报警设置表
客户跟踪价格表
期初发货、委托、受托商品库存表
发货、委托、受托商品库存表
发货结算单明细表
固定资产基本信息表(包括固定资产类别、增
减方式、使用状况)
固定资产减少
固定资产折旧明细
固定资产明细表
会计期间表
期初借进借出商品表
借进借出商品表
门店登记信息表
IniGoodsStocks
GoodsWar
Price
IniCommission
Commission
Sendjsdly
Fixbasic
Fixdel
FixDepDetail
FixDetail
MonthProc
Lendborrow00
Lendborrow
Posinfo
常用表中的主要字段介绍
1.商品信息库(ptype)
名称
商品ID
父ID
级数
现有儿子数
曾有儿子数
商品编码
全名
简名
规格
型号
地区
备注
最新进价
是否删除
成本算法
记录号
父记录号
条码
字段
typeId
ParId
leveal
sonnum
soncount
UserCode
FullName
Name
Standard
Type
Area
Comment
recPrice
deleted
costmode
Rec
ParRec
barcode
注释
唯一,系统自动累加
父类的记录号
一般来说soncount大
于,等于sonnum数
系统自动生成,唯一
数据类型
varchar(25)
varchar(25)
Smallint
Int
Int
varchar(26)
varchar(66)
varchar(30)
varchar(20)
varchar(20)
varchar(30)
varchar(250)
numeric(18,4)
bit
int
int
int
varchar(50)
注:销售退货取的入库商品的成本首先取最近加价值(recprice),如果没有的话才
取当前库存成本值.
2.往来单位信息库(btype)
与商品信息库相同的字段这里就不介绍了
名称
应收发生额
应付发生额
期初应收
期初应付
是否客户(还是供应商)
应收超额
应付超额
字段
Artotal
Aptotal
Arttl00
Apttl00
Isclient
Arlimit
Aplimit
注释
数据类型
Numeric(9)
Numeric(9)
Numeric(9)
Numeric(9)
Int
varchar(66)
varchar(30)
3.职员信息表,仓库信息表,地区,部门的信息表的结构都跟商品信息表的差不多.
4.会计科目表(atypecw,atype)
名称
借贷方向
借方全年累计发生额
借方期初发生额
借方发生额01…12
当前借方余额
期初借方余额
期末借方余额01…12
贷方全年累计发生额
贷方期初发生额
debit
Debit00
debit01
DebitTTL
DebitTTL00
DebitTTL01
lend
Lend00
代码
direction
注释
用于查询利润表中
的本年累计
每个会计期间的借
方发生额
每个会计期间的借
方余额
用于查询利润表中
的本年累计
即期初帐务数据中
的本年累计发生贷
方
每个会计期间的贷
方发生额
每个会计期间的贷
方期末余额
数据类型
char(1)
numeric(18,2)
numeric(18,2)
numeric(18,2)
numeric(18,2)
numeric(18,2)
numeric(18,2)
numeric(18,2)
numeric(18,2)
贷方发生额01…12
当前贷方余额
期初贷方余额
期末贷方余额01…12
期初本年损益累计发
生
lend01
LendTTL
LendTTL00
LendTTL01
debitlend
numeric(18,2)
numeric(18,2)
numeric(18,2)
numeric(18,2)
numeric(18,2)
注:这个表中的科目余额发生额的值,都是通过发生的相关业务单据计算出来的值,我们
一般不做直接修改。
5.
单据索引表(dlyndx)
名称
单据号
制单日期
物流单据编号
单据类型
物流单据摘要
凭证编号
往来单位ID
职员ID
仓库ID
仓库ID2
物流科目
审核人ID
会计期间
红冲标记
被红冲标记
登帐人ID
制单人ID
草稿标记
代码
Vchcode
Date
Number
VchType
summary
Comment
btypeid
etypeid
ktypeid
ktypeid2
ifcheck
checke
period
RedWord
RedOld
accounte
InputNo
draft
注释
系统生成,唯一,与明细表是
通过vchcode相关连的.
在VchType表中可以查询到
往来单位(btype)中的typeid
职员(employee)中的typeid
仓库(stock)中的typeid
调拨单等需要两个仓库的单
据时用
物流单有的要输入的科目
为’T’时表示这张单据是红
冲或被红冲单据
为’T’时表示这张单据是被
红冲单据
空的话是未登帐
1 草稿单据
2 已过账单据
3 临时单据
数据类型
numeric(10)
varchar(10)
varchar(60)
numeric(4)
varchar(256)
int
varchar(25)
varchar(25)
varchar(25)
varchar(25)
varchar(25)
varchar(25)
smallint
char(1)
char(1)
varchar(25)
varchar(25)
int
单据合计金额
单据的票据类型
部门ID
Total
BillType
projectid
numeric(18,2)
int
varchar(25)
Dlya,dlysale,dlybuy等明细表中记录的是所有单据发生的明细,这里不作详细介绍比如说要
修改某张销售单据中某个商品销售价格或者销售成本,在dlysale里面我们就可以修改的字
段是price,total或者costprice,costtotal字段值,还要将dlya中对应的科目值重新写一下.
6.系统初始值表(sysdata)
名称
系统编号
项目名称
项目值
备注
代码
SubNo
SubName
SubValue
SubComment
注释
数据类型
int
varchar(30)
varchar(100)
varchar(30)
注:表中subname=period是会计其间;
startdate:做帐开始日期;
niover :是否已经开帐,0为未开帐,1为已开帐;
enddate:做帐开始日期;
versionno:软件的版本序列号
7.商品库存分布表(goodsstocks),期初库存(inigoodsstocks)
名称
商品ID
仓库ID
批号
生产日期
库存数量
成本单价
库存金额
批次
代码
PtypeId
KtypeId
JobNumber
OutFactoryDate
Qty
Price
Total
GoodsOrder
系统值
注释
数据类型
varchar(25)
varchar(25)
varchar(20)
varchar(13)
numeric(18,4)
numeric(18,4)
numeric(18,2)
int
注:商品的库存分布和批次详情都是写在这个库中的,如果商品在某个仓库中的数量和金额
都为0的时候,在这个表中是不应该显示出来的.
期初库存(inigoodsstocks)是同样的,我们这里也就不单独介绍了.
8.客户跟踪价格表(price),跟踪的都是折前价格
9.
固定资产明细表(Fixdetail)
名称
vchcode
usercode
date
Fullname
DepartmentID
Hisdep
depatypeid
代码
vchcode
usercode
date
Fullname
DepartmentID
Hisdep
depatypeid
注释
数据类型
numeric(18)
char(25)
datetime
char(50)
int
numeric(18,2)
varchar(25)
这个是部门id,不可缺少
折旧金额
折旧对应科目
简单数据的修复方法:
1.清除超级用户密码:
update loginuser
set password=’’
where etypeid=’00000’
2.进入账套时提示:‘invalid variant type conversion’
(1)drop procedure z_checkpassword
(2)CREATE PROCEDURE z_checkpassword
AS
select l.* , me as efullname from loginuser l, employee e where
l .etypeid=
return 0
(3)delete from loginuser
where etypeid not in (select typeid from employee)
3.期初库存商品数量为0,但是不能删除基本信息。
Delete from inigoodsstocks
Where qty=0 and total=0
4.辉煌版中由于以前版本的问题造成的期初收入类、费用类科目有余额,利润没
有清0, 以致资产负债表不平,将收入支出类科目清零
UPDATE atype
SET TTL00 = 0
WHERE (typeId LIKE '00003%') OR
(typeId LIKE '00004%') OR
(typeId='')
5.辉煌版中点击库存状况时出现提示: invalid variant type conversion
检查一下ptype表中是否有字段长度过大的情况,比如prepreice4的值是否异
常大,如是在查询分析器中执行:
Update ptype
set preprice4=0
where prepreice4>1000000
6.辉煌版中“用户口令及权限设置”中增加一新用户总是排在“超级用户”前而
且不允许删除,“超级用户”却可以删除
Loginuser中记录的顺序错了,在查询分析器中运行:
begin tran
select * into #t from loginuser order by etypeid
truncate table loginuser
insert into loginuser select * from #t
commit
7.如何将数据库物理文件恢复到SQL SERVER中,
情况一:有*.mdf和*.ldf文件,
sp_attach_db @dbname = N'test',
@filename1 = N'd:',
@filename2 = N'd:'
注:@filename1 = N'd:':
物理数据库数据文件名称(包括路径,主文件名,扩展文件名);
@filename2 = N'd:'
物理数据库日志文件名称(包括路径,主文件名,扩展文件名);
情况二:只有一个*.mdf文件:
EXEC sp_attach_db @dbname = N'guest',
@filename1 = N'c:'
注:c:为*.mdf文件的路径
以上两种情况,将文件恢复后,还要在master数据库中的graspcwzt中添加数
据库名与帐套名
8.如在管家婆中做年结存时,提“超时已过期”,可在数据库中手工做年结存。
辉煌版:
exec z_yearclose
标准版:
a. exec CW_F_YearClose 1
b. exec CW_F_YearClose 2
先执行a,再执行b
9.日期录入错误的处理方法
步骤一:
首先在查询分析器中查找日期>当前日期的单据,执行语句如下:
select * from dlyndx where date>’yyyy-mm-dd’
(注:yyyy-mm-dd为当前日期格式yyyy为年,mm为月,dd为日)
步骤二:
修改日期:
1)、如只有年份录入错误,如把2002-12-31录成2003-12-31,则执行:
updata dlyndx set date=’2002’+right(date,6) where date>’yyyy-mm-dd’
updata dlya set date=’2002’+right(date,6) where date>’yyyy-mm-dd’
然后根据dlyndx中的vchtype确定单据的类型,然后修改对应的表。
如果是销售单:
updata dlysale set date=’2002’+right(date,6) where date>’yyyy-mm-dd’
进货单:
updata dlybuy set date=’2002’+right(date,6) where date>’yyyy-mm-dd’
其它的单据:
updata dlyother set date=’2002’+right(date,6) where date>’yyyy-mm-dd’
2)、如日期全部需要修改,则执行:
update dlyndx set date=’YYYY-MM-DD’ where date>’yyyy-mm-dd’
(YYYY-MM-DD为输入的正确日期的格式)
然后依次把dlyndx改为dlya 执行。然后确定单据的类型,修改其它的单据。
步骤三:
修改sydata表中的当月的结束日期。
Update sysdata set subvalue=’yyyy-mm-dd’ where subname=’enddate’
(yyyy-mm-dd为过账单据的最大的日期,可由下列语句查出:
Select max(date) from dlyndx where draft=2
步骤四:
修改月结存信息表monthproc.
10.辉煌版中自动盘盈盘亏不能使用,每次使用时把盘点数量输入保存后再打开,
同一商品就会变为几个乃至几十个。
解决方法:是把CheckedCount库清空。
在查询分析器中执行:delete from CheckedCount
11、标准版中在应收款查询和应付款查询中,选择同一时间段时往来对账的此前
余额与明细账本中的此前余额不一致。
原因:查询一下在明细账本中有收、付款单,但在往来对账中是否有收、付款
单,如往来对账中没有,则是由于在dlyndx中btypeid有记录,而dlya中btypeid
为空造成的。
解决方法: 在查询分析器中执行:
update dlya
set btypeid = b .btypeid
from dlya a inner join dlyndx b
on e = e
where e in(4,66)
12.在登账时提示“科目已经删除或者分类”,不能登账
原因:有些会计科目已经分类或删除,而凭证指向的会计科目却仍然指向它。
解决方法:查找已分类或删除的科目,执行:
SELECT *
FROM atypecw a INNER JOIN
DlyA d ON = d
WHERE d = 1 OR <> 0
找出这些科目后,让客户修改dlya中的atypeid,使其指向子类。
13. 标准版登帐时提示科目被删除或者分类的情况:
查找被删除或者分类的科目的执行语句:
SELECT *
FROM DlyA
WHERE (atypeid IN
(SELECT typeid
FROM atypecw
WHERE sonnum <> 0 or deleted=1))
找到之后,重新将科目选择一次.
数据修复组


发布评论