SSRS: динамический выбор набора данных / запроса - PullRequest
0 голосов
/ 14 мая 2019

Я портирую отчеты в SSRS, и я нашел отчет, который веб-приложение в настоящее время обрабатывает странным образом.Я пытаюсь найти решение.

В настоящее время веб-приложение выполняет некоторую логику при вызове отчета и выясняет, вызывать ли тот или иной SQL-запрос.Они оба предоставляют одинаковые поля базы данных sql.Построитель отчетов веб-приложения заполняет один шаблон содержимым того запроса, который использовался.

ОК.Как я могу воспроизвести это с SSRS?Насколько я могу судить, у меня есть следующие варианты:

  1. Определить один набор данных и выполнить логику, чтобы выбрать, какой оператор select будет выполняться.(Но как?)
  2. Определите два набора данных и используйте тонну операторов IIF, чтобы выбрать, какой набор данных / значение будет отображаться в каждом поле.(Но будет ли это работать с табликсами?)
  3. Что-то еще, о чем я не подумал.

Мне просто нужно знать, что возможно и эффективно.

Спасибо.

1 Ответ

1 голос
/ 14 мая 2019

Один из способов сделать это - иметь скрытый параметр с именем @logic.

. Вы уже знаете, что такое логика и какой запрос нужно выполнить для этой логики.

скажем,например, ваш текущий первый запрос -

select table1.columna as a from table1

, а текущий второй запрос -

select table2.columna as a from table2

.

select table1.columna as a from table1 where @logic = 0
union all
select table2.columna as a from table2 where @logic = 1

Ваш отчет будет передавать параметр @logic в набор данных в зависимости от логики.

В случае, если один набор @logic = 0, в случае два набор @logic = 1

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

Надеюсь, мое объяснение имеет смысл.

Конечно ... это только один из способов приблизиться к этому!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...