费用模式(一次生成)
下面通过《水费管理系统》来详细介绍一次生成收费清单的费用模式。
下面来介绍一次生成收费清单的处理过程
例 水费管理系统中的抄表导入节点 右击该节点→信息关联设置→设定/改变信息(表/源)→在使用查询语句(SQL)或脚本代码处填写SQL语句。
SQL语句解析
delete from 临时表
解析:该语句是删除处理,用于删除临时表中的数据。
go
insert into 临时表(用户单位,户号,户名,水表编号,水价类别,单价,倍率,水表位数,联系电话,最低消费,备注,新增用户,年度,月份)
select 用户单位,户号,户名,水表编号,水价类别,单价,倍率,水表位数,联系电话,最低消费,备注,新增用户,设置年月.年度,设置年月.月份 from 基本信息,设置年月
解析:该语句是插入处理,用于将基本信息,设置年月的数据插入到临时表中。
go
update 基本信息 inner join 临时表 on 临时表.水表编号=基本信息.水表编号 set 基本信息.年度=临时表.年度,基本信息.月份=临时表.月份
解析:该语句是更新处理,用于将临时表中的数据,根据临时表.水表编号=基本信息.水表编号的关联关系更新到基本信息表中。
go
update 基本信息SET 基本信息.新增用户=true
解析:该语句是更新处理,用于更新新增用户键值,其作用是防止重复抄表。
GO
UPDATE (设置年月 INNER JOIN 抄表 ON(设置年月.年度=抄表.年度)AND(设置年月.月份=抄表.月份)) INNER JOIN 基本信息ON 基本信息.水表编号=抄表.水表编号 SET 基本信息.新增用户=False
解析:该语句是更新处理,用于更新满足条件的新增用户的键值,防止重复抄表。(上述2条更新语句需要连用)
GO
INSERT INTO 抄表(用户单位,户号,户名,水表编号,表别,水价类别,单价,倍率,水表位数,联系电话,最低消费,年度,月份)
SELECT 用户单位,户号,户名,水表编号,表别,水价类别,单价,倍率,水表位数,联系电话,最低消费,年度,月份
FROM 基本信息
解析:该语句是插入处理,用于将满足条件的基本新信息的数据插入到抄表中。
go
解析:该语句是删除处理,用于删除中间表中的数据
go
insert into 中间表(水表编号,抄表日期)
select 水表编号,max(抄表日期) as 抄表日期 from 抄表
where 抄表日期 is not null
解析:该语句是插入处理,用于将满足抄表日期 is not null 条件的抄表中的数据插入到中间表中。
go
update 中间表 inner join 抄表
on 抄表.水表编号=中间表.水表编号
set 中间表.起码=抄表.止码,中间表.余额=抄表.余额
解析:该语句是更新处理,将抄表中的数据按照抄表.水表编号=中间表.水表编号的关联关系更新到中间表中。(此处将更新中间表.起码=抄表.止码,中间表.余额=抄表.余额)
go
update 抄表 inner join 中间表
on 抄表.水表编号=中间表.水表编号
set 抄表.起码=中间表.起码,抄表.上月余额=中间表.余额
解析:该语句是更新处理,将中间表中的数据按照抄表.水表编号=中间表.水表编号的关联关系更新到抄表中。(此处将更新抄表.起码=中间表.起码,抄表.上月余额=中间表.余额)
go
update 抄表 inner join 基本信息 on 抄表.水表编号=基本信息.水表编号
set 抄表.用户单位=基本信息.用户单位,抄表.户号=基本信息.户号,抄表.户名=基本信息.户名,抄表.表别=基本信息.表别,
抄表.水价类别=基本信息.水价类别,抄表.单价=基本信息.单价,抄表.倍率=基本信息.倍率,抄表.水表位数=基本信息.水表位数,
抄表.联系电话=基本信息.联系电话
where 抄表.年度+抄表.月份 in (select 年度+月份 from 设置年月)
解析:该语句是更新处理,将基本信息中的数据按照 抄表.水表编号=基本信息.水表编号的关联关系更新到抄表中。
附:软件下载地址
ftp://inmisdown@www.inmis.com/soft/Wrms.exe