博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
informix数据对比
阅读量:4111 次
发布时间:2019-05-25

本文共 1154 字,大约阅读时间需要 3 分钟。

需求如下:

企业传送过来个人费用明细文件,每行数据按“|”分割:个人银行账号|客户姓名|单位月缴额|账户状态|

银行informix数据库表 booklist存储银行个人费用明细,booklist表主要字段是:cust_no,cust_name,mon_pay,state 对应于上面文件内容。

现需要进行核对明细,上述各字段皆不为空,账户状态有0-正常、1-封存,根据个人银行账号逐个比对单位月缴额和账户状态,最终打印出企业多、银行多、不一致和一致的结果。

要求使用链表,存储和核对需要打印的结果字段个人银行账号、客户姓名、单位月缴额、账户状态、对比结果。请写出设计流程和主要SQL代码。

 

方案:

1.数据导入到一张表中

2.利用MERGE INTO去计算匹配 

代码实现:

1.命令行创建比对结果表并数据导入到informix:

CREATE TABLE bookListResult (   cust_no  VARCHAR(40),   cust_name  VARCHAR(40),    mon_pay  FLOAT ,  state int,    isSync  int,   whoMore  VARCHAR(40),); load from /mydir/enterprise.dat delimiter '|'insert into bookListResult;

2.数据匹配比对操作:

--是否一致 一致标示为1,否则标示为0,判断标准仅限于账户名称,账户状态和金额MERGE INTO bookListResult blrUSING booklist blON blr.cust_no=bl.cust_no and blr.state = bl.state   and blr.mon_pay = bl.mon_payWHEN MATCHED THENUPDATE SET blr.isSync = 1,WHEN NOT MATCHED THENUPDATE SET blr.isSync = 0;--是否一致 一致标示为1,否则标示为0MERGE INTO bookListResult blrUSING booklist blON blr.cust_no=bl.cust_no and blr.mon_pay > bl.mon_pay and blr.isSync = 0  and blr.state = bl.stateWHEN MATCHED THENUPDATE SET blr.whoMore = '企业多',WHEN NOT MATCHED THENUPDATE SET blr.whoMore = '银行多';

3.直接遍历bookListResult打印结果信息

 

转载地址:http://dpqsi.baihongyu.com/

你可能感兴趣的文章
第一天进入博客这个神奇的领域 在此%%%erosun
查看>>
新手对Spring的图解和一点个人理解
查看>>
Mac OS 10.6.5上如何默认启动mysq服务
查看>>
IC设计流程
查看>>
Linux下的redis安装和发布订阅
查看>>
实现刮刮乐的效果
查看>>
JavaScript箭头函数中的this详解
查看>>
I/O系统,多线程、图形用户界面编程
查看>>
矩阵优化总结
查看>>
Learn GIT
查看>>
Tensorflow常用方法
查看>>
Centos7中给gitLab汉化
查看>>
mysql中的列属性
查看>>
MQTT协议理解
查看>>
DataBase -- Employees Earning More Than Their Managers My Submissions Question
查看>>
转载一篇让你全面了解什么是.NET。
查看>>
python基础—基本数据类型(int bool str)
查看>>
Niagara基于javascript的控件开发
查看>>
简单的NDK编译生SO文件
查看>>
hadoop-2.2.0多个队列资源分配
查看>>