您的位置:首页 > 数据库

[原]做报表,写Sql语句的一点收获

2008-10-30 14:37 295 查看
Sql语句一直是弱项,最近整报表可是痛苦呀,一个select能写两天。

整理一下一些常用的函数和写法放在这,以后忘了来看看,呵呵(针对Oracle数据库)。

例子都是生产中的例子,直接放上来保存着,后面要用的时候,我就直接复制过去用了,看起来比较费劲,例子大家还是不要看了。

一、递归查询

Start with...Connect By,用于对一个树形结构的表递归遍历,Start with后面跟初始值,Connect By后面跟遍历条件。

比如:

Decode 例子

SELECT A.WELL_COMMON_NAME,

TO_CHAR(B.PROD_DATE, 'YYYYMMDD'),

C.PUMP_JACK_WORKING_TIME,

decode(d.OIL_PROD_METHOD,

'1A',

D.UP_CURRENT || '/' || D.DOWN_CURRENT,

d.ELEC_PUMP_CURRENT_A) dl,

from CD_WELL_SOURCE a,

PC_DEV_WELL_ATTR b,

PC_PRO_WELL_VOL_DAILY c,

PC_PRO_WELL_STATUS_DAILY d,

TEMP_WELL_MECH_ALL e

where c.Well_Id = a.Well_Id(+)

and c.well_id = b.well_id(+)

and c.well_id = d.well_id(+)

and c.prod_date = d.prod_date(+)

and c.prod_date = to_date('20081015', 'yyyyMMdd')

AND c.well_id = e.well_id(+)

AND c.prod_date = e.test_date(+)

and a.Org_Id in ({OrgList})

order by c.well_id, c.prod_date
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: