我对Pl Sql相对比较新,必须编写一个跟踪的程序,它有6-7个不同的查询,如下所示:
从abc ..........
选择经理,计数(*)银行从abc选择经理,计数(*)零售.......
现在每个计数都针对不同的部门,而经理可能是相同的。所以问题是我正在寻找一种可以帮助我存储的最佳方法 单独表格中的数据具有以下结构:
经理:计数银行:零售计数:计算xyz ...........如何确保使用每个管理器对所有列(bank / retai / xyz)具有正确计数的Pl sql,首先是如何存储多个不同的查询结果并对其进行处理。我想我们可以使用光标,但我需要研究它,这个程序也应该是高性能的。 请建议。
由于 XslGuy
答案 0 :(得分:4)
使用条件求和很容易实现。希望下面的内容足以让您了解自己需要做什么:
with sample_data as (select 1 id, 1 dept, 10 val from dual union all
select 2 id, 1 dept, 20 val from dual union all
select 3 id, 2 dept, 30 val from dual union all
select 4 id, 3 dept, 40 val from dual union all
select 5 id, 1 dept, 50 val from dual union all
select 6 id, 3 dept, 60 val from dual union all
select 7 id, 2 dept, 70 val from dual union all
select 8 id, 4 dept, 80 val from dual)
-- end of creating a subquery that contains some sample data. See sql below:
select sum(case when dept = 1 then val end) dept_1_total,
sum(case when dept = 2 then val end) dept_2_total,
sum(case when dept = 3 then val end) dept_3_total
from sample_data
where dept in (1, 2, 3);
DEPT_1_TOTAL DEPT_2_TOTAL DEPT_3_TOTAL
------------ ------------ ------------
80 100 100