我需要将值列表添加到oracle电子商务套件中报表生成器的bin参数中。
但是在这个值列表中,我需要的第一个选项是all
,其他值是select语句的结果,如下所示:
all
10
20
30
....
因此,如果用户单击" all“,则报告将查询所有部门,如果用户单击任何其他特定部门,则报告将查询此特定部门
如何添加此“全部”选项??
发布于 2021-06-23 04:12:08
我不使用EBS,但我知道一些报告和一些SQL,所以--这是我的建议。
添加"all“选项很简单--用其他值union
它。如下所示:
SQL> select value
2 from (select 1 rn, 'all' value from dual
3 union all
4 select 2 rn, to_char(deptno) from dept
5 )
6 order by rn, value;
VALUE
----------------------------------------
all
10
20
30
40
SQL>
然后,在查询中,您可以将其用作
select e.deptno, e.ename, e.job
from emp e
where e.deptno = case when :par_deptno = 'all' then to_char(e.deptno)
else :par_deptno
end
order by e.deptno, e.ename;
上面的例子是在SQL*Plus中运行的(所以不要介意替换变量而不是绑定变量):
首先,我通过了10
SQL> select e.deptno, e.ename, e.job
2 from emp e
3 where e.deptno = case when '&&par_deptno' = 'all' then to_char(e.deptno)
4 else '&&par_deptno'
5 end
6 order by e.deptno, e.ename;
Enter value for par_deptno: 10
DEPTNO ENAME JOB
---------- ---------- ---------
10 CLARK MANAGER
10 KING PRESIDENT
10 MILLER CLERK
现在,让我们尝试一下all
SQL> undefine par_deptno
SQL> /
Enter value for par_deptno: all
DEPTNO ENAME JOB
---------- ---------- ---------
10 CLARK MANAGER
10 KING PRESIDENT
10 MILLER CLERK
20 ADAMS CLERK
20 FORD ANALYST
20 JONES MANAGER
20 SCOTT ANALYST
20 SMITH CLERK
30 ALLEN SALESMAN
30 BLAKE MANAGER
30 JAMES CLERK
30 MARTIN SALESMAN
30 TURNER SALESMAN
30 WARD SALESMAN
14 rows selected.
SQL>
在我看来还可以。现在,它在EBS中会是什么样子,我不知道。
https://stackoverflow.com/questions/68090024
复制相似问题