有几张表没有权限,所以跑不起来。

目测黄色部分比较坑爹,死了n多脑细胞才看懂,又死了n多脑细胞才改出来。对5034进行了2次扫描,并多次分组排序求和。(分组和排序算法相对来说比较耗性能)

改为只扫描一次,一次编号操作。

 

这个没有什么既定的规则,就是使劲想各种奇葩办法简化。(这个改写就是利用了oracle在排序的时候,把null当成无穷大。而在sqlserver上就不适用了,因为sqlserver在排序的时候把null当无穷小)

 

黄色部分可改为下面的代码。

select *

FROM (select f1_5034,

decode(min(rn_a) - 1, 1, 0, min(rn_a) - 1) ylqk,

min(rn_b) - 1 bbqk

from (select case

when nvl(f25_5034, 0) > 0 then null

else rn end rn_a,

case

when f25_5034 Is not Null then null

else rn end rn_b,

f1_5034

from (Select f1_5034,

f3_5034,

f25_5034,

row_number() Over(partition By f1_5034 Order By f3_5034 Desc) rn

From wind.tb_object_5034

Where f3_5034 Like '%1231'))

group by f1_5034)

where bbqk is not null

--------------------原代码-------------------------

Select fdate,zqdm,zqmc,jysc,xzjq,dqsyl,fsynx,ffxjg,fpmje,fsqpmlv,ffxcs,ffxfs,fscfxr,

fssdd,fjxqsr,jxjzr,fxgm,cqxypj,dqxypj,'NULL' gjxypj,jhht,fldzrdb,ffxgsdm,fgsjc,zqlx,nvl(bbqk,0) bbqk,fxrq,

Case When nvl(zzc,0)<>0  Then 1 Else 0 End As xxplqk,ylqk ylqk,

hxzbczl,zzc,jzc,DbrXyPj,rzzt,shzt,'1' lsyjs,Jjbz, cxsmc, cxqsr,cxjzr,bjyy,lvlx,syyhdb,FCqXypj,FDqXypj,FGjxypj,FGnxypjJgd,FGjxypjJgd,DCqXypj,

'NULL' DGjxypj,flvjz,'NULL' FYsSyr, '0' fsdq ,'NULL' fsdqsr ,'NULL' fsdjzr ,'NULL' Fsdjzr2 ,fjcjq,flljq, '1' ffxzt,flvjzlb,'1' Ffxlx, fdbrdm,fdbr,Fdbrxz,FdbrSnmJzc,fsndgncqxy,Fdbrgnpjjg,

Ffxrlb,fzgr,fzgjzr,x.f13_5015 fzgbl,x.f12_5015 fzgjg, 'NULL' fzgzqdm,fsfsh,'NULL' fjkyy,fdbrzt,fggxx,

(Select F68_1854

From wind.tb_object_1854 T

Where nvl(BbQk, 0) >= 1

And F1_1854 = F25_4516

And F4_1854 = '合并报表'

And substr(F2_1854, 5, 8) = '1231'

And f2_1854 = (Select Max(f2_1854)

From Wind.tb_object_1854

Where T.f1_1854 = f1_1854

And substr(F2_1854, 5, 8)='1231'

And f4_1854 = '合并报表')) fsnlr,

(Select F68_1854

From wind.tb_object_1854 T

Where nvl(BbQk,0) >= 2

And F1_1854 =F25_4516

And F4_1854 ='合并报表'

And substr(F2_1854, 5, 8) = '1231'

And f2_1854 = (Select substr(Max(f2_1854),1,4)-1||'1231'

From Wind.tb_object_1854

Where T.f1_1854 = f1_1854

And substr(F2_1854, 5, 8)='1231'

And f4_1854 = '合并报表')) fqnlr,

(Select F68_1854

From wind.tb_object_1854 T

Where nvl(BbQk,0) >= 3

And F1_1854 =F25_4516

And F4_1854 ='合并报表'

And substr(F2_1854, 5, 8) = '1231'

And f2_1854 = (Select substr(Max(f2_1854),1,4)-2||'1231'

From Wind.tb_object_1854

Where T.f1_1854 = f1_1854

And substr(F2_1854, 5, 8)='1231'

And f4_1854 = '合并报表')) fdqnlr,

(Select F140_1853

From wind.tb_object_1853 T

Where nvl(BbQk, 0) >= 1

And F1_1853 = F25_4516

And F4_1853 = '合并报表'

And substr(F2_1853, 5, 8) = '1231'

And f2_1853 = (Select Max(f2_1853)

From Wind.tb_object_1853

Where T.f1_1853 = f1_1853

And substr(F2_1853, 5, 8)='1231'

And f4_1853 = '合并报表'))  FsnmfxrNav

,  Ffxrdchqyz

From (

(SELECT to_char(&PlanTime - 1, 'YYYYMMDD') fdate,

f1_4516 zqdm,

f2_4516 zqmc,

f43_4516,

f25_4516,

f40_1429,

Case

When f12_4516 = '上交所' Then '1'

When f12_4516 = '深交所' Then '2'

When f12_4516 = '银行间' Then '3'

Else '4' End As jysc,

Case

When f2_1639 = to_char(&PlanTime - 1, 'YYYYMMDD') Then f5_1639

Else  0

End As xzjq,

Case

When f2_1639 = to_char(&PlanTime - 1, 'YYYYMMDD') Then  f3_1639 Else Null End As dqsyl,

Case

When f2_1639 = to_char(&PlanTime - 1, 'YYYYMMDD') Then  f9_1639

Else  0

End As fsynx,

f8_4516 ffxjg,

f7_4516 fpmje,

f5_4516 fsqpmlv,

f9_4516 ffxcs,

Case

When F10_4516 = '4' Then  '1'

When F10_4516 = '0' Then  '2'

When F10_4516 = '1' Then  '3'

When F10_4516 = '2' Then  '4'

When F10_4516 = '3' Then  '5'

Else  Null  End As ffxfs,

(Select Min(f8_1270)  From wind.tb_object_1270  Where F1_1270 = F43_4516) fscfxr,

Case f13_4516

When '上交所' Then 'H'

When '深交所' Then 'S'

When '银行间' Then 'Y'

Else Null End As fssdd,

f3_4516 fjxqsr,

f4_4516 jxjzr,

F26_4516 * 100000000 fxgm,

Case

When f47_1429 Is Not Null Then  '1'

Else '0' End As jhht,

Case

When F48_1429 = '不可撤销连带责任担保' Then '1'

End As fldzrdb,

f25_4516 ffxgsdm,

f24_4516 fgsjc,

Case

When F17_4516 = '321' Then '1'

When F17_4516 = '333' Then '3'

When F17_4516 = '322' And F29_1429 Is Null Then '2'

When F17_4516 = '322' And F29_1429 = '公司债' Then '11'

When F17_4516 = '322' And F29_1429 = '中期票据' Then '13'

When F17_4516 = '323' And F29_1429 <> '可分离转债' Then '4'

When F17_4516 = '323' And F29_1429 = '可分离转债' Then '12'

When F17_4516 = '310' And F29_1429 Is Null Then '6'

When F17_4516 = '310' And F29_1429 Is Not Null Then '14'

When F17_4516 In ('331', '340') Then '7'

When F17_4516 = '341' Then '8'

When F17_4516 = '342' Then '9'

Else '0 '

End As zqlx,

f20_4516 fxrq,

Case

When F29_1429 = '可转债' Then

'中国证券监督管理委员会'

When F4_1090 = 'Q' And F29_1429 Not In ('中期票据', '短期融资券') Then

'发展和改革委员会'

Else 'NULL'

End As shzt,

Case

When (F32_1429 Like '%铁路%' And F47_1429 = '2002638') Or

(F32_1429 Like '%三峡%' And F47_1429 = '2002650') Then  '1'

Else   '0'  End As Jjbz,

nvl((Select t.ob_object_name_1020 From Wind.tb_object_1020 t

Where f27_1429=t.ob_object_id),'NULL') CxsMc,

f15_4516 cxqsr,

f16_4516 cxjzr,

Null bjyy,

Case

When f34_1429 = '贴现' Then   '贴现债券'

When f11_1429 = '固定利率' Then '固定利率'

When f11_1429 = '累进利率' Then '浮动利率-固定利率'

When f11_1429 = '浮动利率' Then '浮动利率-市场利率'

Else  Null End As lvlx,

Case

When f48_1429 = '不可撤销连带责任担保' Then  1 Else  0 End As syyhdb,

NVL((SELECT f4_1703 - f39_1429

FROM wind.tb_object_1703

Where f1_1703 = f1_1429

And f3_1703 = (SELECT Min(f3_1703)

FROM wind.tb_object_1703

Where f1_1703 = f1_1429)),0) flvjz,

NVL(f15_1639,0) fjcjq,

NVL(f16_1639,0) flljq,

Case

When f47_1429 Is Not Null Then  f47_1429 Else 'N' End As fdbrdm,

Case

When f34_1018 = F47_1429 Then ob_object_name_1018 Else 'N' End As fdbr,

Case

When f34_1018 = F47_1429 And F40_1018 = 2 Then '1' Else  '2'  End As Fdbrxz,

Case

When f34_1018 = F47_1429 And F40_1018 = '2' And

F41_1018 = 49 Then  '105'

When f34_1018 = F47_1429 And F40_1018 <> '2' And

F41_1018 = 49 Then  '205'

When f34_1018 = F47_1429 And F40_1018 = '2' And

F41_1018 <> 49 Then  '1'

When f34_1018 = F47_1429 And F40_1018 <> '2' And

F41_1018 <> 49 Then '2'

When f34_1018 = F47_1429 And F41_1018 = '25' Then '3'

When f40_1429='2000850' Then '2'

Else  '4'  End As Ffxrlb,

Case

When Exists (Select 1

From wind.tb_object_1269

Where f1_1269 = f25_4516

And f85_1269 Is Null) Then  1

Else  0 End As fsfsh,

Case

When f34_1018 = F47_1429 And F41_1018 = '11' Then  '1'

When f34_1018 = F47_1429 And F41_1018 = '29' Then '2'

When f34_1018 = F47_1429 And F41_1018 = '4' Then '3'

When f34_1018 = F47_1429 And F41_1018 = '27' Then '4'

When f34_1018 = F47_1429 And ob_object_name_1018 = '中国人民银行' Then '5'

When f34_1018 = F47_1429 And F41_1018 = '25' Then '6'

When f34_1018 = F47_1429 And F41_1018 = '3' Then '7'

Else '8' End As fdbrzt,

(Select f7_1271

From wind.tb_object_1271

Where f1_1271 = f43_4516) fzgjzr,

nvl((SELECT f3_1735

FROM wind.tb_object_1735 a

Where F1_1735 = F43_4516

And F2_1735 = '长期信用评级'

And f4_1735 = (SELECT Max(f4_1735)

FROM wind.tb_object_1735 b

Where a.f1_1735 = b.f1_1735

And b.f2_1735 = '长期信用评级')

And rownum = 1),'NULL') cqxypj,

NVL((SELECT f3_1735

FROM wind.tb_object_1735 c

Where F1_1735 = F43_4516

And F2_1735 = '短期信用评级'

And f4_1735 = (SELECT Max(f4_1735)

FROM wind.tb_object_1735 d

Where F43_4516 = d.f1_1735

And F2_1735 = '短期信用评级')

And rownum = 1),'NVLL') dqxypj,

NVL((SELECT f4_1454

FROM wind.tb_object_1454 c

Where F1_1454 = F25_4516

And F54_1454 = '408001000'

And f2_1454 = (SELECT Max(f2_1454)

FROM wind.tb_object_1454 d

Where F25_4516 = d.f1_1454

And F54_1454 = '408001000')),0) hxzbczl,

NVL((SELECT f145_1853

FROM wind.tb_object_1853 c

Where F1_1853 = F25_4516

And F4_1853 = '合并报表'

And f2_1853 = (SELECT Max(f2_1853)

FROM wind.tb_object_1853 d

Where F25_4516 = d.f1_1853

And F4_1853 = '合并报表')),0) zzc,

NVL((SELECT f140_1853

FROM wind.tb_object_1853 c

Where F1_1853 = F25_4516

And F4_1853 = '合并报表'

And f2_1853 = (SELECT Max(f2_1853)

FROM wind.tb_object_1853 d

Where F25_4516 = d.f1_1853

And F4_1853 = '合并报表')),0) jzc,

NVL((Select f4_1734

From wind.tb_object_1734 a, wind.tb_object_0004

Where ob_object_name_1018 = f1_0004

And f3_0004 = f2_1734

And f5_1734 = (Select Max(f5_1734)

From wind.tb_object_1734 b

Where b.f1_1734 = a.f1_1734)

And rownum = 1),'NULL') DbrXyPj,

Case

When f41_1018 = '11' Then '1'

When f41_1018 = '29' Then '2'

When f41_1018 In ('4', '5') Then '3'

When f41_1018 = '49' And OB_OBJECT_NAME_1018 = '中国人民银行' Then '5'

When f41_1018 = '17' Then '6'

Else  '7' End As rzzt,

nvl((SELECT f4_1734

FROM wind.tb_object_1734 c

Where F2_1734 = F25_4516

And F3_1734 = '长期信用评级'

And f5_1734 = (SELECT Max(f5_1734)

FROM wind.tb_object_1734 d

Where c.f1_1734 = d.f1_1734

And d.F3_1734 = '长期信用评级')

And rownum = 1),'NULL') FCqXypj,

NVL((SELECT f4_1734

FROM wind.tb_object_1734 c

Where F2_1734 = F25_4516

And F3_1734 = '短期信用评级'

And f5_1734 = (SELECT Max(f5_1734)

FROM wind.tb_object_1734 d

Where c.f1_1734 = d.f1_1734

And d.F3_1734 = '短期信用评级')

And rownum = 1),'NULL') FDqXypj,

'NULL' FGjxypj,

NVL((Select f6_1734

FROM wind.tb_object_1734 c

Where F2_1734 = F25_4516

And f5_1734 = (Select Max(f5_1734)

From wind.tb_object_1734 d

Where c.f1_1734= d.f1_1734)

And rownum = 1),'NULL') FGnxypjJgd,

'NULL' FGjxypjJgd,

nvl((SELECT f4_1734

FROM wind.tb_object_1734 c

Where F2_1734 = F25_4516

And F3_1734 = '长期信用评级'

And f5_1734 = (SELECT Max(f5_1734)

FROM wind.tb_object_1734 d

Where c.f1_1734 = d.f1_1734

And d.F3_1734 = '长期信用评级')

And rownum = 1

),'NULL') DCqXypj,

(SELECT Case

When F4_1641 = '1年期定期存款利率' Then  2082

When F4_1641 = '半年期定期存款利率' Then   2061

When F4_1641 = '三个月定期存款利率' Then  2070

When F4_1641 = '7天回购定盘平均值' Then  4016

When F4_1641 = '7天回购利率平均值' And f6_1641 = 'B2W' Then 4003

When F4_1641 = '7天回购利率平均值' And f6_1641 = 'B_2W' Then 4002

When F4_1641 = '7天回购利率平均值' And f6_1641 = 'B_1M' Then 3976

When F4_1641 = 'LIBOR' And f6_1641 = 'LIBOR_6M-USD' Then 5041

When F4_1641 = 'SHIBOR' And f6_1641 = 'SHIBOR_3M(10)' Then 7480

When F4_1641 = 'SHIBOR' And f6_1641 = 'SHIBOR_3M(5)' Then  7606

When F4_1641 = 'SHIBOR' And

f6_1641 = 'SHIBOR_1W(120)' Then 7942

When F4_1641 = 'SHIBOR' And f6_1641 = 'SHIBOR_1Y(10)' Then 9595

When F4_1641 = 'SHIBOR' And f6_1641 = 'SHIBOR_1Y(20)' Then 13216

End x FROM wind.tb_object_1641  Where f1_1641 = f43_4516) flvjzlb,

NVL((SELECT f140_1853

FROM wind.tb_object_1853

Where F1_1853 = F47_1429

And F4_1853 = '合并报表'

And f2_1853 = (SELECT Max(f2_1853)

FROM wind.tb_object_1853

Where F1_1853 = F47_1429

And F4_1853 = '合并报表')),0) FdbrSnmJzc,

NVL((SELECT f4_1734

FROM wind.tb_object_1734 c

Where F2_1734 = F25_4516

And F3_1734 = '长期信用评级'

And f5_1734 = (SELECT Max(f5_1734)

FROM wind.tb_object_1734 d

Where  c.f1_1734 = d.f1_1734

And c.F3_1734 = '长期信用评级')

And rownum = 1),'NULL') fsndgncqxy,

NVL((Select f6_1734

FROM wind.tb_object_1734 c

Where F2_1734 = F25_4516

And F3_1734 = '长期信用评级'

And f5_1734 = (Select Max(f5_1734)

From wind.tb_object_1734 d

Where  c.f1_1734 = d.f1_1734

And F3_1734 = '长期信用评级')

And rownum = 1),'NULL') Fdbrgnpjjg,

(Select Max(f3_5015) From wind.tb_object_5015  Where  f2_5015 =f43_4516 And f12_5015 Is Not Null And f13_5015 Is Not Null ) fzgr

From wind.tb_object_4516

Left Join wind.tb_object_1639 On F1_1639 = F43_4516

And f2_1639 =

to_char(&PlanTime - 1, 'YYYYMMDD')

Left Join wind.tb_object_1429 On F1_1429 = F43_4516 And (F30_1429>=to_char(&PlanTime,'yyyymmdd') Or F30_1429 Is Null)

Inner Join wind.tb_object_1090 On f1_1429 = f2_1090

Left Join wind.tb_object_1018 On F25_4516 = F34_1018) a

--取报表情况和盈利情况

Left Join (Select a.f1_5034, decode(ylqk, 1, 0, ylqk) ylqk, bbqk

From (Select f1_5034, nvl(Min(rn) - 1, Sum) ylqk

From (Select f1_5034,f3_5034,f25_5034,row_number() Over(partition By f1_5034 Order By f3_5034 Desc) rn,

Sum(1) Over(partition By f1_5034) Sum

From wind.tb_object_5034 Where f3_5034 Like '%1231') t

Where nvl(f25_5034, 0) <= 0

Group By f1_5034, Sum) a,

(Select f1_5034, nvl(Min(rn) - 1, Sum) bbqk

From (Select f1_5034, f3_5034, f25_5034,row_number() Over(partition By f1_5034 Order By f3_5034 Desc) rn,

Sum(1) Over(partition By f1_5034) Sum

From wind.tb_object_5034 Where f3_5034 Like '%1231') t

Where f25_5034 Is Null

Group By f1_5034, Sum) b

Where a.f1_5034 = b.f1_5034) tt On a.ffxgsdm = tt.f1_5034

--fggxx字段

Inner Join (Select Distinct f1_4516, f2_4516,

Case When F37_1673 Is Null And Not Exists

(Select 1

From wind.tb_object_1673 b

Where f37_1673 Is Not Null

And b.f1_1673 = a.f1_1673) Then  1 Else  0 End As fggxx

From wind.tb_object_4516

Left Join wind.tb_object_1673 a On f1_1673 = f25_4516) xx On a.zqdm =

xx.f1_4516

And a.zqmc =

xx.f2_4516

-- 取转股比例和转股价格字段                                                                         

Left Join wind.tb_object_5015 x On  a.f43_4516 =x.f2_5015  And x.f3_5015=a.fzgr

--取企业(公司)债券发行人待偿还的企业债券余额

Left Join (Select f40_1429 ,Sum(f3_1640*10000) Ffxrdchqyz  From wind.tb_object_1429,wind.tb_object_1640 Where (F30_1429> to_char(&PlanTime-1,'yyyymmdd') Or F30_1429 Is Null)

And F1_1640=F1_1429

Group By f40_1429) yy On a.f40_1429=yy.f40_1429

)

优化笔记:jsyhjkzqxx_D_20140916.gz的更多相关文章

  1. 优化笔记: jxrsfxrxx_D_20140916.gz

    表的重复扫描.   ----------------------------------想进一步研究,继续往下看------------------------------ 1.       所有相似 ...

  2. 优化笔记:pfyhparopenfundinfotest_D_20140916.gz

    性能瓶颈在函数的乱用.原代码黄色部分. 12分钟->35秒 ------------------------------------------------------------------- ...

  3. Android App性能优化笔记之一:性能优化是什么及为什么?

    By Long Luo   周星驰的电影<功夫>里面借火云邪神之口说出了一句至理名言:“天下武功,唯快不破”. 在移动互联网时代,同样如此,留给一个公司的窗口往往只有很短的时间,如何把握住 ...

  4. (转)MySQL优化笔记(八)--锁机制超详细解析(锁分类、事务并发、引擎并发控制)

    当一个系统访问量上来的时候,不只是数据库性能瓶颈问题了,数据库数据安全也会浮现,这时候合理使用数据库锁机制就显得异常重要了. 原文:http://www.jianshu.com/p/163c96983 ...

  5. U3D开发性能优化笔记(待增加版本.x)

    http://blog.csdn.net/kaitiren/article/details/45071997 此总结由自己经验及网上收集整理优化内容 包括: .代码方面: .函数使用方面: .ui注意 ...

  6. CMU Convex Optimization(凸优化)笔记1--凸集和凸函数

    CMU凸优化笔记--凸集和凸函数 结束了一段时间的学习任务,于是打算做个总结.主要内容都是基于CMU的Ryan Tibshirani开设的Convex Optimization课程做的笔记.这里只摘了 ...

  7. 移动web性能优化笔记

    移动web性能优化 最近看了一些文章,对移动web性能优化方法,做一个简单笔记 笔记内容主要出自 移动H5前端性能优化指南和移动前端系列——移动页面性能优化

  8. mysql系列十一、mysql优化笔记:表设计、sql优化、配置优化

    可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非 ...

  9. nginx优化笔记(keepalive、https等)

    一.nginx之tcp_nopush.tcp_nodelay.sendfile 1.TCP_NODELAY你怎么可以强制 socket 在它的缓冲区里发送数据?一个解决方案是 TCP 堆栈的 TCP_ ...

随机推荐

  1. Unity 播放 带 alpha 通道的视频(Video Player组件)

    孙广东  2017.6.18 http://blog.csdn.NET/u010019717 通常是  .webm类型文件!!!!!  你可以下载这个文件到本地: Http://tsubakit1.s ...

  2. String.prototype.getParm

    String.prototype.getParms=function(name){ var reg = new RegExp('(^|&)' + name + '=([^&]*)(&a ...

  3. SortedList【排序列表】

    C# 集合 SortedList 类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问. 排序列表是数组和哈希表的组合.它包含一个可使用键或索引访问各项的列表.如果您使用索引访问各项 ...

  4. HDU 1806

    http://acm.hdu.edu.cn/showproblem.php?pid=1806 非常玄妙的rmq问题,这个st算法有点神 #include <iostream> #inclu ...

  5. 微信小程序视频教程

    微信小程序全套视频教程在线观看地址:http://v.qq.com/vplus/92e0ff1abe80fce5bcfe344f11a106c5/foldervideos/hod000101p9le1 ...

  6. UICollectionView功能使用

    UICollectionView在2012年被提出,已经不是什么新技术了,在此只是做一下简单的实现. 集合视图:UICollectionViewUICollectionView和UITableView ...

  7. cocos studio pageview看不到indicator指示点

    发现如果在cocos studio里操作给PageView创建页面元素时,即使setIndicatorEnabled为true也看到下方的指示点,必须调用addWidgetToPage或者insert ...

  8. php开发中一些前端知识杂总

    推荐几个jqyuey插件的好地方 http://jqueryui.com/ http://www.jq22.com/ 背景: 服务端采用ci3.0框架,twig作为模板嵌套. twig模板手册: ht ...

  9. HDU2604 Queuing 矩阵初识

    Queues and Priority Queues are data structures which are known to most computer scientists. The Queu ...

  10. bzoj 5334 数学计算

    bzoj 5334 数学计算 开始想直接模拟过程做,但模数 \(M\) 不一定为质数,若没有逆元就 \(fAKe\) 掉了. 注意到操作 \(2\) 是删除对应的操作 \(1\) ,相当于只有 \(1 ...