成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

DB2 拉鏈表存儲(chǔ)過(guò)程的實(shí)現(xiàn)過(guò)程描述

數(shù)據(jù)庫(kù)
此文章主要介紹的是DB2 拉鏈表存儲(chǔ)過(guò)程的實(shí)際操作過(guò)程,以下就是文章的詳細(xì)內(nèi)容介紹,希望會(huì)給你帶來(lái)一些幫助在此方面。

此文章主要向大家描述的DB2 拉鏈表存儲(chǔ)過(guò)程的實(shí)際操作過(guò)程,在實(shí)際操作中我們大家根據(jù) T_depbal 賬戶(hù)余額表以及交易流水表,來(lái)生成拉鏈表,在拉鏈表中,開(kāi)始日期為2006-1-1 結(jié)束日期為2050-12-31日。

建表

  1. create table T_depchg  
  2. (  
  3. ACCOUNT_NO int,  
  4. START_DATE DATE,  
  5. ENT_DATE DATE,  
  6. BALANCE double,  
  7. AVG_BAL double  
  8. )  
  9. CREATE TABLE T_DEPBAL  
  10. (  
  11. ACCOUNT_NO int,  
  12. BALANCE double  
  13. )  

------------------------------------------------------------------------------

  1. insert into t_journal values(date('2006-1-4'),2,200,1)  
  2. create table t_journal  
  3. (  
  4. TRANS_DATE DATE,  
  5. ACCOUNT_NO int,  
  6. AMT double,  
  7. FLAG double  
  8. )  
  9.  

----------------------------------------------------------------
-DB2 拉鏈表存儲(chǔ)過(guò)程
----------------------------------------------------------------

  1. create procedure bal  
  2. RESULT SETS 1  
  3. MODIFIES SQL DATA  
  4. begin  
  5. declare v_account int;  
  6. declare v_balance int default 0;  
  7. declare sqlcode int default 0;  
  8. declare v_days int default 0;  
  9. declare var_balance int default 0;  
  10. declare v_all int default 0;  
  11. declare v_acc int;  
  12. declare v_start_date date;  
  13. declare v_end_date date;  
  14. declare v_trans_date date;  
  15. declare v_max_date date;  
  16. declare v_bt_days int default 0;  
  17. declare v_in int;  
  18. declare v_de int;  
  19. declare v_amt int default 0;  
  20. declare v_avg_bal int default 0;  
  21. declare v_bal int;  
  22. declare cur_account cursor with return for select * from t_depbal;  
  23. --cur_journal definition  
  24. declare cur_journal cursor for   
  25. select account_no, trans_date,COALESCE(sum(Out) ,0) as Out,COALESCE(sum(de) ,0) as de,COALESCE(sum(de),0)-COALESCE(sum(Out) ,0) as re from   
  26. (  
  27. select trans_date,account_no,  
  28. case when flag=0 then Amt end as Out,  
  29. case when flag=1 then Amt end as de  
  30. from t_journal where account_no =v_account 
  31. Order By trans_Date   
  32. ) t1  
  33. group by trans_date, account_no  
  34. order by account_no,trans_date;  
  35. --max_date_cur   
  36. declare max_date_cur cursor for   
  37. select max(trans_date) from t_journal  
  38. where account_no=v_account;  
  39. open cur_account  
  40. delete from t_depchg;  
  41. open cur_account;  
  42. out_loop:  
  43. loop  
  44. fetch cur_account into v_account,v_balance;  
  45. IF SQLCODE =100 then leave out_loop;  
  46. end if;  
  47. INSERT INTO DEMO VALUES(V_ACCOUNT,V_BALANCE);  
  48. set var_balance=v_balance;  
  49. set v_all=0;  
  50. set v_start_date =date('2006-1-1');  
  51. -- open cur_journal  
  52. open cur_journal;  
  53. fetch_loop:  
  54. loop  
  55. fetch cur_journal into v_acc,v_trans_date,v_in,v_de,v_amt;  
  56. IF SQLCODE =100 then leave fetch_loop;  
  57. end if;  
  58. set v_bal = var_balance;  
  59.  
  60. set v_end_date = v_trans_date;  
  61. set v_days=days(v_end_date)-days(date('2006-1-1'));  
  62. set v_bt_days=(days(v_end_date)-days(v_start_date));  
  63. set v_allv_all =v_all+(var_balance*v_bt_days);  
  64. set v_avg_bal = v_all/v_days;  
  65. insert into t_depchg values(v_acc,v_start_date,v_end_date,v_bal,v_avg_bal);   
  66. set var_balancevar_balance=var_balance+v_amt;  
  67. set v_start_date =v_end_date;  
  68. -- processing dead date  
  69. if v_start_date=v_max_date then  
  70. set v_days=days('2050-12-31')-days(date('2006-1-1'));  
  71. set v_bt_days=(days('2050-12-31')-days(v_start_date));  
  72. set v_allv_all =v_all+(var_balance*v_bt_days);  
  73. set v_avg_bal = v_all/v_days;  
  74. insert into t_depchg values(v_acc,v_start_date,date('2050-12-31'),var_balance,v_avg_bal);   
  75. end if;  
  76. open max_date_cur;  
  77. date_loop:  
  78. loop  
  79. fetch max_date_cur into v_max_date;  
  80. IF SQLCODE =100 then leave date_loop;  
  81. end if;  
  82. end loop;  
  83. close max_date_cur;  
  84. end loop;  
  85. close cur_journal;  
  86. end loop;  
  87. close cur_account;  
  88. end@  
  89. drop procedure bal  
  90. call bal  
  91. select * from t_depchg  

以上的相關(guān)內(nèi)容就是對(duì)DB2 拉鏈表存儲(chǔ)過(guò)程的介紹,望你能有所收獲。

【編輯推薦】

  1. DB2數(shù)據(jù)庫(kù)的部分日常實(shí)用操作的闡述
  2. DB2數(shù)據(jù)庫(kù)為單個(gè)會(huì)話(huà)的鎖定技巧如何其作用?
  3. DB2數(shù)據(jù)庫(kù)SQL編碼優(yōu)化與性能描述
  4. 對(duì)DB2數(shù)據(jù)庫(kù)編目概念正確理解
  5. DB2未使用索引的查找方案描述


 

責(zé)任編輯:佚名 來(lái)源: IT實(shí)驗(yàn)室
相關(guān)推薦

2010-08-18 13:59:04

DB2純SQL存儲(chǔ)過(guò)程

2010-11-03 10:26:22

DB2存儲(chǔ)過(guò)程

2010-11-03 10:35:45

DB2存儲(chǔ)過(guò)程

2010-08-04 09:50:35

DB2 9存儲(chǔ)過(guò)程

2010-11-03 10:46:49

DB2存儲(chǔ)過(guò)程

2010-08-18 13:29:11

DB2存儲(chǔ)過(guò)程

2010-08-31 15:39:25

DB2存儲(chǔ)過(guò)程

2010-08-25 09:56:02

DB2存儲(chǔ)過(guò)程

2010-11-04 12:00:59

db2存儲(chǔ)過(guò)程

2011-04-15 13:21:41

DB2翻頁(yè)存儲(chǔ)

2010-08-16 08:42:19

IBM DB2 9版本

2010-08-18 15:42:33

2010-08-04 09:56:44

2010-09-06 10:54:52

DB2 sql 存儲(chǔ)過(guò)

2010-11-03 11:02:34

DB2存儲(chǔ)過(guò)程

2010-11-04 13:55:26

DB2 SQL腳本批量

2010-09-01 15:09:41

DB2動(dòng)態(tài)游標(biāo)

2009-03-10 09:08:06

DB2存儲(chǔ)過(guò)程實(shí)施

2010-09-06 14:20:25

DB2 V7

2010-09-06 10:43:15

DB2 SQL存儲(chǔ)過(guò)程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久视频在线 | 91动漫在线观看 | 欧美成人一区二免费视频软件 | 极品在线| 国产探花在线精品一区二区 | 日韩欧美国产成人一区二区 | 亚洲精品一区二区 | 成人三区四区 | 曰韩一二三区 | 无人区国产成人久久三区 | 亚洲色片网站 | www.国产一区 | 毛片久久久 | 欧美视频区 | 国产精品国产三级国产aⅴ中文 | 2021狠狠天天天 | 色毛片| 亚洲欧美一区二区三区国产精品 | 中文字幕第90页 | 日韩欧美在线观看 | 国产伦精品一区二区三区在线 | 这里有精品 | 精品成人免费一区二区在线播放 | 国产ts人妖一区二区三区 | 亚洲在线视频 | 国产成人99av超碰超爽 | 国产精品一区二区久久精品爱微奶 | 欧美精品一区二区三区在线 | 91欧美激情一区二区三区成人 | 国产一区二区精 | 国产一区二区久久 | 视频一区 亚洲 | 日本中文在线 | 国产成人免费网站 | 蜜桃特黄a∨片免费观看 | 亚洲国产一区二区三区四区 | 亚洲成人一级片 | 精品国产一区二区久久 | 日韩日韩日韩日韩日韩日韩日韩 | 91免费看片| 一区二区三区精品视频 |