需求如下:
企業傳送過來個人費用明細檔案,每行資料按「|」分割:個人銀行賬號|客戶姓名|單位月繳額|賬戶狀態|
銀行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版本對比
功能 特性和優點 ids de id press ids wge ids ee 許可平台支援 windows linux 32位和64位 aix solaris hp ux windows和linux伺服器 只支援32位 支援amd intelx86處理器 windows linux 基於amd i...
轉貼 Informix資料備份
一.使用ontape工具進行資料備份 1.ontape工具的功能 2.執行ontape備份資料的語法 ontape備份語法為 ontape s l 備份級別 0 1 2 在online處於聯機或靜止方式時,informix使用者或具有dba許可權的使用者可以通過執行上面的命令進行備份。根據備份方案安...
INFORMIX資料匯入匯出
1 匯出資料庫中乙個表的結構到檔案test.sql informix localhost dbschema d your database name t your table name test.sql your database name 資料庫名 sysadmin your table name...