【发布时间】:2012-02-19 22:25:57
【问题描述】:
我有一个带有嵌套和左连接的大查询,我需要从中创建一个视图,以免从应用程序中运行它。问题是我需要日期范围和其他一些字段作为输入参数,因为每个请求的前端都会有所不同。
我刚刚查看并看到一些帖子提到使用 SYS_CONTEXT 进行参数化视图,并且需要确切知道如何使用 2 个参数创建视图 - fromdate, todate 以及如何从应用程序调用视图。
仅供参考,我正在使用 grails/groovy 开发应用程序。 这是我想从中创建视图的查询..
select
d.dateInRange as dateval,
eventdesc,
nvl(td.dist_ucnt, 0) as dist_ucnt
from (
select
to_date(fromdate,'dd-mon-yyyy') + rownum - 1 as dateInRange
from all_objects
where rownum <= to_date(fromdate,'dd-mon-yyyy') - to_date(todate,'dd-mon-yyyy') + 1
) d
left join (
select
to_char(user_transaction.transdate,'dd-mon-yyyy') as currentdate,
count(distinct(grauser_id)) as dist_ucnt,
eventdesc
from
gratransaction, user_transaction
where gratransaction.id = user_transaction.trans_id and
user_transaction.transdate between to_date(fromdate,'dd-mon-yyyy') and to_date(todate,'dd-mon-yyyy')
group by to_char(user_transaction.transdate, 'dd-mon-yyyy'), eventdesc
) td on td.currentdate = d.dateInRange order by d.dateInRange asc
【问题讨论】: