SSRS 2005 Передача разных параметров в один и тот же набор данных - PullRequest
0 голосов
/ 11 мая 2011

Я создаю отчет в SSRS 2005 с несколькими наборами данных. Примером может служить количество грузовиков, доставляющих коробки с товарами, и количество коробок, доставляемых для каждого состава. У грузовиков есть время отправления, и они могут путешествовать в течение длительного времени, прежде чем добраться до места назначения (и я хочу посмотреть, сколько грузовиков находится в пути). Пример набора результатов может выглядеть следующим образом:

+---------------------+------------+------------+------------+          
|                     |   Current  |     MTD    |     YTD    |
+---------------------+------------+------------+------------+
| Convoy 1 | # Trucks |      3     |      0     |     16     |
|          | Boxes    |     150    |      0     |    1005    |
+----------+----------+------------+------------+------------+
| Convoy 2 | # Trucks |      0     |     12     |      8     |
|          | Boxes    |      0     |     144    |     113    |
+----------+----------+------------+------------+------------+
| Convoy 3 | # Trucks |      0     |     0      |      0     |
|          | Boxes    |      0     |     0      |      0     |
+----------+----------+------------+------------+------------+

Меня попросили поместить sql в отчет и не использовать сохраненные процедуры или представления.

Все составы должны отображаться в наборе результатов, даже если в данный момент нет грузовиков, осуществляющих доставку (как в Составе 3). Что я сейчас делаю для запросов, так это нахожу все конвои и затем оставляю соединение с каждым из диапазонов дат. Например, псевдопросмотр:

select a.convoy_name, current.trucks, current.weight, mtd.trucks, mtd.weight, ytd.trucks, ytd.weight
from(
  (get all convoys) a
  left join
  (get trucks and boxes for current date) current
  on a.something = current.something
  left join
  (get trucks and boxes for mtd) mtd
  on a.something = mtd.something
  left join
  (get trucks and boxes for ytd) ytd
  on a.something = ytd.something
)

Единственная разница между запросами даты - это дата начала. То, что я хотел бы сделать, это создать общий запрос, в который я мог бы передать начальную дату и получить текущие результаты, результаты mtd или ytd (как если бы я использовал сохраненный процесс). Кто-то опубликовал похожую проблему здесь , но она не получила ответа.

Есть ли способ сделать это в SSRS 2005? (И мне любопытно узнать, возможно ли это и в более поздних версиях).

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

1 Ответ

0 голосов
/ 26 мая 2011

Я не совсем уверен, что понимаю ваш вопрос (извините!).Глядя на другой связанный вопрос, похоже, что они надеются на что-то вроде команды Excel SUMIF, где они не фильтруют данные на уровне запроса, а вместо этого фильтруют на уровне отчета.Это возможно в SSRS 2005 путем создания параметра, который не используется в запросе, а затем фильтрации на уровне детализации группы.Это близко к ответу на ваш вопрос?

...