私の理解が正しければmetrics_fourweeks
、別のビュー ( ) からのデータを必要とするビュー ( )を実行する必要がありcompiled_fourweeks
、この最後のビューにはユーザーからの入力が必要です。
私は手順のアプローチに行きます:
create procedure fourWeeksData(d date)
create or replace view compiled_fourweeks
select ...
from ...
where recordDate = f -- Just an example; use whichever where clause you need
...;
select * from metrics_fourweeks;
end
データベースを 1 人のユーザーだけが使用する場合、問題は解決されます。ただし、データベースが複数のユーザーによって使用されることを意図している場合...まあ、一時テーブルを使用できます。
create procedure fourWeeksData2(d date)
drop table if exists temp_compiled_fourweeks;
create temporary table temp_compiled_fourweeks
select ...
from ...
where recordDate = f -- Just an example; use whichever where clause you need
...;
-- You will need to create the required indexes for this new temp table
-- Now replicate the SQL statement, using your new temp table
select ...
from temp_compiled_fourweeks
...;
end
これがお役に立てば幸いです。