我有一个查询基于用户上传的信息,它基本上是一个员工统计每周文件。问题是,查询需要每周更新一次(一旦用户加载了新的一周信息),以添加新的一周的数据。例如:

在该示例中,一旦Week 7命中,并且用户为其加载信息...应该添加一个新列(week7列)。
我已经有了一个静态查询,但这意味着我必须每周向它添加新的部分。有什么建议吗?(我正在考虑通过PL/SQL循环它,拉取最大周数but...not,确定如何将其转换为报告视图)
编辑:此查询将基于我自己创建的一个表,该过程将通过CSV文件上传每周用新数据替换所有现有数据。表样:

(周数列告诉我们员工是否在特定的一周内完成了活动)
EMPLOYEE WEEK
Dana 1
Filipe 2
hannah 2
hannah 3
jonh 1
jonh 4谢谢
发布于 2021-11-09 20:41:16
能够找到本地帮助,创建了一个函数来创建我的查询:
CREATE OR REPLACE Function my_function
RETURN varchar2
IS
v_stmt varchar2(5000);
v_my_week number;
begin
v_stmt :='with data_1 as(
select distinct
Rep
from My_table
order by 1
)' ;
for i in (select distinct week from My_table ) loop
v_stmt := v_stmt || ', week_'|| i.week || ' as(
select
Rep,
count(unique_j) unique_'|| i.week ||
'
from My_table
where week = ' || i.week || '
group by week, Rep
)';
end loop;
v_stmt := v_stmt || ' select
b.Rep';
for i in (select distinct week from My_table) loop
v_stmt := v_stmt || ', unique_'|| i.week || ' as as Week_' || i.week ;
end loop;
v_stmt := v_stmt || ' from data_1 b';
for i in (select distinct week from My_table) loop
v_stmt := v_stmt || ' left join week_'|| i.week || ' wk'|| i.week || ' on
wk'||i.week ||'.Rep = b.Rep';
end loop;
return v_stmt;
end;谢谢大家
https://stackoverflow.com/questions/69900277
复制相似问题