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))

找到之后,重新将科目选择一次.

数据修复组