需求如下:
企业传送过来个人费用明细文件,每行数据按“|”分割:个人银行账号|客户姓名|单位月缴额|账户状态|
银行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 blr USING booklist bl ON blr.cust_no=bl.cust_no and blr.state = bl.state and blr.mon_pay = bl.mon_pay WHEN MATCHED THEN UPDATE SET blr.isSync = 1, WHEN NOT MATCHED THEN UPDATE SET blr.isSync = 0; --是否一致 一致标示为1,否则标示为0 MERGE INTO bookListResult blr USING booklist bl ON blr.cust_no=bl.cust_no and blr.mon_pay > bl.mon_pay and blr.isSync = 0 and blr.state = bl.state WHEN MATCHED THEN UPDATE SET blr.whoMore = '企业多', WHEN NOT MATCHED THEN UPDATE SET blr.whoMore = '银行多';
3.直接遍历bookListResult打印结果信息
相关推荐
### INFORMIX数据库操作及SQL语法 #### 一、引言 ...通过以上内容的学习,可以更好地理解INFORMIX数据库的操作和管理,以及如何利用SQL语言来有效地管理和查询数据。这对于软件开发人员来说是非常重要的技能。
1. **准备阶段**:这是整个数据移植流程的基础,需对源数据库(Oracle)与目标数据库(Informix)进行全面的对比分析,识别差异,并制定相应的迁移策略。这一步骤包括数据类型匹配、SQL语法调整、函数和存储过程的...
《Informix JDBC驱动详解及其版本对比》 Informix是一款高效且功能强大的关系型数据库管理系统,广泛应用于企业级数据存储和管理。与Java编程语言的交互是通过Java Database Connectivity(JDBC)驱动程序实现的。...
Oracle 和 Informix 都提供了字符串函数来处理字符串数据。这些函数可以用来截取字符串、转换字符串的大小写、获取字符串的长度等。 1. 截取字符串:Informix 中的 substr 函数可以用来截取字符串,例如 `str...
2. **Oracle环境**:虽然本篇文章主要关注的是Informix数据库,但为了对比和学习,了解如何在Oracle环境下执行SQL性能分析也是有益的。可以通过`sqlplus`工具来执行相关的命令。 #### 二、获取SQL执行计划 在进行...
### 达梦数据库6与Sinoregal DS/Informix存储过程对比分析 #### 概述 本文档旨在对比达梦数据库6(以下简称“DM”)与Sinoregal DS(以下简称“Sinoregal”)存储过程的异同点,通过详细阐述两者的差异,帮助读者更...
例如,如果业务需求强调大数据处理和实时分析,那么Oracle和INFORMIX可能是理想的选择;而如果需要一个易于上手且在Windows环境中运行良好的数据库,SQL Server会是不错的选择。 此外,每个数据库都有其特有的特性...
3. 空间不足:“-802”错误,表明数据库空间不足,需要扩展数据文件或清理无用数据。 4. 权限问题:“-20001”错误,通常意味着用户权限不足,需要检查用户的访问权限设置。 四、错误日志分析 Informix的错误日志...
描述简单明了,直指对比的内容是SQL Server 2012与Informix。标签"2012 informix"进一步确认了讨论的是这两个特定版本的数据库管理系统。 SQL Server 2012是Microsoft公司推出的一款关系型数据库管理系统,以其强大...
### Informix 数据备份与管理知识点总结 #### 一、Informix 数据备份方法比较及选择 在进行数据备份时,有多种方法可以选择,如 `ontape`、`dbexport` 和 `unload`。根据具体需求,不同的备份方式适用于不同的场景...
1. **Informix产品简介及新旧对比** - Informix C-ISAM:早期的数据库引擎,基于文件系统存储,支持行级锁定。 - Informix SE(SQL Everywhere):适用于小型系统的简单数据库,通过sqlterm工具进行管理。 - ...
- **数据验证**:对比迁移前后数据的一致性,确保数据准确无误。 - **性能调优**:根据迁移后的实际运行情况调整 Oracle 数据库参数,优化性能表现。 #### 七、注意事项 - **迁移风险评估**:迁移过程中可能存在...
- **性能对比**:分析两种方式在处理Form数据时的性能表现。 - **适用场景**:根据不同的应用场景选择合适的编程方法。 #### 显示Form和窗口的语句 - **Form显示**:如何在界面上展示Form数据。 - **窗口管理**:...
首先,了解Informix的产品历史与对比。Informix最初以C-ISAM为基础,提供了简单易用的文件系统,如Informix SE和sqlterm。随着技术的发展,Informix推出了Online 4.0和sqlturbo,再到Informix Dynamic Server 7.1,...
- **Informix Dynamic Server (IDS)**是Informix的主要版本之一,提供了先进的数据管理和存储功能。版本9.4是该系列中的一个关键版本,包含了多项重要的性能改进和新特性。 #### 二、性能调优基础知识 - **性能调优...
在移植过程中,需要对比和理解Informix与Oracle之间的架构和对象差异,如Database、Tablespace、User、Table、Trigger、Synonym、Sequence和View等。例如,Informix的serial类型在Oracle中可以通过number类型和...
本文主要探讨了基于Informix应用系统的移植过程,涉及Informix应用的特性、Informix与Oracle的对比、移植工具Migration Workbench的使用,以及移植过程中的关键步骤和技术难点。以下是对这些知识点的详细阐述: 1. ...
【Informix数据库升级指南】 Informix数据库升级是一个关键任务,涉及多个步骤,旨在将现有数据库从旧版本平滑过渡到新版本。此过程不仅需要确保数据的完整性和一致性,还要保持系统的稳定性和性能。本文主要关注...
【描述】:本文件主要对比了INFORMIX数据库与其他数据库,如Microsoft SQL Server,在数据库对象、限制、数据类型等方面的特点和差异。 【标签】:软件开发 【正文】: INFORMIX数据库在数据库对象方面表现出一些...
《Informix 高级培训教材》是一份专为Informix数据库管理系统高级用户和管理员准备的教程,涵盖了系统对比、配置优化、性能调整等多个关键领域。本文将深入解析教材中的核心知识点,帮助读者提升对Informix数据库...