IT分销/经销数据库

能用sql实现吗?请求db2高人得帮助

表1
acctno           bal         trandate
--------------------------------------------
102012011        81.23       2010-01-03
102012011       100.21       2010-01-05
102012011       481.23       2010-02-04
102012011      1300.21       2010-04-05
102012011       281.23       2010-04-07
102012011      1020.21       2010-05-01
102012011       821.23       2010-05-21
102012011       100.21       2010-05-26
表二
acctno           bal                trandate       trandate2
------------------------------------------------------
102012011        81.23       2010-01-03     2010-01-05
102012011       100.21       2010-01-05     2010-02-04
102012011       481.23       2010-02-04     2010-04-05
102012011      1300.21       2010-04-05     2010-04-07
102012011       281.23       2010-04-07     2010-05-01
102012011      1020.21       2010-05-01     2010-05-21
102012011       821.23       2010-05-21     2010-05-26
102012011       100.21       2010-05-26     2012-12-31

表一到表二的变换能用sql实现吗,如何解决这个问题请求db2高人的指导
参与21

21同行回答

2012-12-31 这日期那里来?显示全部
2012-12-31 这日期那里来?收起
2010-08-28
浏览705
cp007cp007软件开发工程师asiainfo-linkage
SELECT     a.*,     b.trandate2 FROM     (     SELECT         row_number() over(order by trand ...jamycym 发表于 2010-7-9 10:40     这个不错~~~~显示全部
SELECT
    a.*,
    b.trandate2
FROM
    (
    SELECT
        row_number() over(order by trand ...
jamycym 发表于 2010-7-9 10:40



    这个不错~~~~收起
互联网服务 · 2010-07-19
浏览726
leo_wynleo_wyn商业智能工程师Security
db2 v9 以后的版本才支持olap函数 :)显示全部
db2 v9 以后的版本才支持olap函数 :)收起
系统集成 · 2010-07-14
浏览689
leo_wynleo_wyn商业智能工程师Security
给你个olap 函数参考:select accto, bal, trandate,coalesce(min(trandate) over  (partition by accto order by to_date(trandate, 'YYYY-MM-DD HH24:MI:SS') nulls last rows between 1 following and 1 following),'2010-12-31 00:00:00') next_trandatefr...显示全部
给你个olap 函数参考:

select accto, bal, trandate,

coalesce(

min(trandate) over
  (partition by accto order by to_date(trandate, 'YYYY-MM-DD HH24:MI:SS') nulls last rows between 1 following and 1 following),

'2010-12-31 00:00:00'

) next_trandate


from table(values
        (102012011, 81.23,  '2010-01-03 00:00:00'),
        (102012011, 100.21, '2010-01-05 00:00:00'),
        (102012011, 481.23, '2010-02-04 00:00:00')
              
)

as t(accto, bal, trandate)收起
系统集成 · 2010-07-14
浏览714
很好很强大,测试通过。:victory: 回复  zihowe     select acctno,bal,trandate1,LEAD(trandate1,1,'2012-12-31')OVER(ORDER BY tranda ...ninth 发表于 2010-7-12 14:06 显示全部
很好很强大,测试通过。:victory:
回复  zihowe


    select acctno,bal,trandate1,
LEAD(trandate1,1,'2012-12-31')
OVER(ORDER BY tranda ...
ninth 发表于 2010-7-12 14:06

收起
2010-07-12
浏览705
ninthninth数据库管理员拓维信息系统股份有限公司
回复 16# zihowe     select acctno,bal,trandate1,LEAD(trandate1,1,'2012-12-31')OVER(ORDER BY trandate1) AS trandate2from(values(102012011,81.23,'2010-01-03'),(102012011,100.21,'2010-01-05'),(102012011,481.23,'2010-02-04'),(102012011,1300.21,...显示全部
回复 16# zihowe


    select acctno,bal,trandate1,
LEAD(trandate1,1,'2012-12-31')
OVER(ORDER BY trandate1) AS trandate2
from
(
values
(102012011,81.23,'2010-01-03'),
(102012011,100.21,'2010-01-05'),
(102012011,481.23,'2010-02-04'),
(102012011,1300.21,'2010-04-05'),
(102012011,281.23,'2010-04-07'),
(102012011,1020.21,'2010-05-01'),
(102012011,821.23,'2010-05-21'),
(102012011,100.21,'2010-05-26')
) as t(acctno,bal,trandate1)收起
互联网服务 · 2010-07-12
浏览751
zihowezihowe系统工程师bank
回复 5# ninth     谢谢您的赐教,不知这位大侠是否能完整下代码!  谢谢。显示全部
回复 5# ninth


    谢谢您的赐教,不知这位大侠是否能完整下代码!  谢谢。收起
IT分销/经销 · 2010-07-10
浏览723
zihowezihowe系统工程师bank
回复 10# jamycym     谢谢您的赐教,不知道这位大侠能否完整您的sql!显示全部
回复 10# jamycym


    谢谢您的赐教,不知道这位大侠能否完整您的sql!收起
IT分销/经销 · 2010-07-10
浏览705
zihowezihowe系统工程师bank
回复 9# jamycym     您好!谢谢您的帮助,不过我之前也有这样的想法但是由于表中acctno字段中的账号不唯一,数据量还比较大,如果使用种方法有可能导致前一个账号最后一条记录和后一账户第一条记录之间数据错误 虽然可以用case when then else end来解决但是效率会很...显示全部
回复 9# jamycym


    您好!谢谢您的帮助,不过我之前也有这样的想法但是由于表中acctno字段中的账号不唯一,数据量还比较大,如果使用种方法有可能导致前一个账号最后一条记录和后一账户第一条记录之间数据错误 虽然可以用case when then else end来解决但是效率会很低!如有其他的解决方法希望不吝赐教!收起
IT分销/经销 · 2010-07-10
浏览735
zihowezihowe系统工程师bank
回复 7# leo     OLAP函数不太会用,因此看的不太懂,希望您能完整sql。谢谢!显示全部
回复 7# leo


    OLAP函数不太会用,因此看的不太懂,希望您能完整sql。谢谢!收起
IT分销/经销 · 2010-07-10
浏览714

提问者

zihowe
系统工程师bank
擅长领域: 数据库

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2010-07-09
  • 关注会员:0 人
  • 问题浏览:11812
  • 最近回答:2010-08-28
  • X社区推广