我正在SSRS 2005中創建一個包含大量數據集的報告。一個例子可能是運送貨物的卡車數量以及每個車隊交付的箱子數量。卡車有起飛時間,可能會在到達目的地之前行駛很長時間(我想看看有多少輛卡車在途中)。示例結果集可能如下所示: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結果(就像我正在使用存儲過程一樣)。有人發佈了類似的問題here,但沒有回答。
有沒有辦法做到這一點是SSRS 2005? (而且我很想知道在後續版本中是否有可能)。
我寧願不添加一堆多個數據集作爲我報告一個已經擁有約10
嗨湯姆。這不是我正在尋找的東西 - 我正在尋找更多的通用查詢來讓我傳遞參數(類似於人們將如何使用,例如,可以在整個應用程序中重用的排序函數)。這會讓事情變得更清楚嗎? – lmg 2011-05-26 13:53:13
啊哈,以爲我到了那裏!每個數據集/查詢只執行一次AFAIK,因此無法重複調用它以獲取不同的數據。有時你可以通過返回大型數據集,然後在使用組過濾器的佈局中將它們切塊。 – TomG 2011-06-01 08:13:05
我希望有辦法做到這一點,但我想沒有這樣的運氣。感謝您的幫助TomG! – lmg 2011-06-07 21:11:34