Я создаю отчет в 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.