Я хочу передать некоторую переменную в запросе и использовать результирующий набор в инструменте отчетности, например, в виде пятна.Параметр в teradata
select prod_id,sum(sal)
from cal c
where qtr_num in (:q)
group by 1
having sum(sal)>0;
: д может быть одно значение ('Q1') или несколько значений ('Q1', 'Q2', 'Q3', 'Q4'), а также.
Я знаю, что мы можем использовать макрос в виде параметров. но мы не можем использовать набор результатов, возвращаемый этим макросом, в инструменте select part/reporting.
Другой вариант - создать представление без фильтра, а затем использовать этот вид с фильтром параметров.
create view v
as
(select prod_id,sum(sal)
from cal c
group by 1
having sum(sal)>0);
select *
from v
where qtr_num in (:q);
, но этот подход может пропустить доступ раздел (созданный на qtr_num) и неэффективный способ запроса на мой взгляд. Этот запрос предназначен только для демонстрации. фактический запрос намного сложнее этого.
Есть ли способ достичь этого в терадате?
I возился с использованием метода strtok_split_to_table, который, вероятно, сработал бы, однако это вызвало крах в моей системе ... поэтому я бы посоветовал это сделать. – JNevill