扫地不过是我表面上的工作,我真正的身份其实是无名老僧-----------手里那根扫把~
单条SQL语句实现复杂逻辑的几个例子(4)续~
上一篇 /
下一篇 2008-04-18 10:35:46
/ 个人分类:三思笔记
接上~~
并不困难,只要对我们的sql稍加改动即可
JSSWEB> select ad1,nav from(
2 select c.*,row_number() over(partition by ad1 order by ad2) rn from (
3 select a.adddate ad1,
4 a.addvalue av1,
5 b.adddate ad2,
6 b.addvalue av2,
7 case
8 when a.addvalue != 0 then
9 a.addvalue
10 when a.addvalue = 0 and b.adddate > a.adddate then
11 b.addvalue
12 when a.addvalue = 0 and b.adddate is null then
13 first_value(b.addvalue) over(order by b.adddate desc nulls last)
14 else
15 0
16 end nav
17 from tmp4 a, tmp4 b
18 where b.addvalue(+) != 0
19 and b.adddate(+)>a.adddate
20 order by 1
21 ) c where nav!=0)where rn=1
22 ;
AD1 NAV
-------------------- ----------
2007-03-01 3.64
2007-03-02 3.64
2007-03-05 3.64
2007-03-06 3.82
2007-03-07 3.47
2007-03-08 3.47
2007-03-09 4.01
2007-03-12 4.01
2007-03-13 4.01
2007-03-14 4.21
2007-03-15 4.12
2007-03-16 4.12
2007-03-17 4.12
怎么样,亲自动手试试吧~~
==================================
查看前三例:
例3:查询员工ID:1000的实际工作月数
例2:查询字段a的值连续三条以上相同的记录
例1:按指定规则生成指定商品指定年限销售额
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: