RedShift Запрос через SSRS с пользовательскими параметрами: Скажите, ЧТО? - PullRequest
0 голосов
/ 27 июня 2018

enter image description here Я пытаюсь создать запрос, который собирает записи, попадающие в указанный период времени, следовательно, BETWEEN. Однако мне нужно сделать это из интерактивного отчета, в котором пользователь может указать параметры endDate и startDate.

Я читал, что RedShift не обязательно поддерживает переменные или параметры и что мне может понадобиться использовать временные таблицы, но мои требования состоят в том, чтобы пользователи могли передавать значения. Я запутался в том, как использование временных таблиц с предопределенными значениями позволяет передавать неопределяемые значения в базовый запрос ...

Вот моя первая попытка (не смейтесь)

   prepare prep_select_plan(date)
    AS select TOP 10 * from table WHERE date BETWEEN $1 AND $2;
    EXECUTE prep_select_plan(@startDate);
    EXECUTE prep_select_plan(@endDate);
    DEALLOCATE prep_select_plan;

Существует ли другая платформа, которая позволила бы мне создавать интерактивный отчет на основе веб-интерфейса с возможностью конечных пользователей вводить значения параметров?

Обновление * Я прикрепил окно свойств набора данных, чтобы получить обратную связь о том, как передать значение в запрос RedShift.

1 Ответ

0 голосов
/ 27 июня 2018

При подключении к базе данных, такой как RedShift или MySQL, с использованием ODBC, вы должны использовать более общий синтаксис для параметров. Вместо использования символа @ и имени параметра, вы просто используете ? в запросе. Например, одна строка будет выглядеть так:

EXECUTE prep_select_plan(?);

Вы можете отобразить, какие параметры отчета переходят к параметрам запроса на вкладке параметров свойств набора данных. Параметры просто отображаются в порядке их появления, вы не можете ссылаться на одно и то же имя в нескольких местах в запросе. Это не так удобно для пользователя, но SSRS в первую очередь предназначен для работы с SQL Server.

...