网上SQL问题连载7

问题出处:http://www.oracle.com.cn/viewthread.php?tid=141615&extra=page%3D10

 

表A
      RIQ          SL      
20090607     130
20090614     136


表B
       RIQ             EDATE   
20090607  200906061448
20090607  200906062149
20090607  200906041840
20090614  200906121056
20090614  200906142035
20090614  200906122310
20090614  200906081840

希望得到的结果为
     RIQ          SL          EDATE
20090607    130   200906061448
20090607     0      200906062149
20090607     0      200906041840
20090614    136   200906121056
20090614     0      200906142035
20090614     0      200906122310
20090614     0      200906081840

请问查询应该怎么写呢?望高手帮忙
  1. SELECT RIQ,  
  2.        DECODE(SL, LAG(SL) OVER(PARTITION BY RIQ ORDER BY RIQ, EDATE), 0, SL) SL,  
  3.        EDATE  
  4.   FROM (SELECT B.RIQ, A.SL, B.EDATE FROM A, B WHERE A.RIQ = B.RIQ)  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值