2013-07-22 17 views
0

我有一個從存儲過程中抽取的報告。 SP需要3分鐘的時間才能運行,所以我不想讓數據庫不止一次提取這些信息。我應該已經在數據集中使用了,那麼我該如何處理它以獲得這些百分比(如果有的話)呢?如何像子查詢一樣實現SSRS Y軸?

我有數據集中的數據,並根據該數據顯示圖表,因此我無法直接更改數據集。我需要所有的信息。一切都很好。現在,在報告的底部,我想要一個折線圖,顯示超過閾值的行數,而對於給定週數未超過閾值的行數。 WeekNumber已經是我在存儲過程中收集的一列。

我已經將類別組設置爲WeekNumber,所以我相信我的X軸應該已經設置爲。現在,我需要將我的Y軸設置爲超出指定周限的值的百分比。然後

我的Y軸值會是這樣的:

OveragePercent=FormatPercent(
       (SELECT COUNT(0) FROM ThisWeek WHERE DataSet1.Threshold > 50)/
       (SELECT COUNT(0) FROM ThisWeek WHERE DataSet1.Threshold < 50), 2) 

任何想法或建議,將不勝感激。

回答

0

我找到了解決方案。

在我的SSRS表中,我使用數據集級別總和與組級別總和來導出總數百分比。該表使用MyDataSet並按日期分組。根據Loads.value,我可以知道當天有多少貨物交付。然後我可以通過使用以下內容來確定哪個工作日具有每週負荷的最高百分比。

=Sum(Fields!Loads.Value)/Sum(Fields!Loads.Value, "MyDataSet") 

這給了我每天的總體百分比。

然後,我需要根據是否設置標誌(因此是主帖子的原因)來過濾掉一些數據。使用相同的方法,我發現IIF函數即使在一個和,所以它變得相當「明顯」(雖然當時對我來說並不明顯)。

=Sum(IIF(Fields!Option1.value=1,Fields!Loads.Value, 0))/Sum(Fields!Loads.Value, "MyDataSet") 

這告訴我這些星期的相同載荷百分比有多少選擇了option1。

我希望這個解決方案也可以幫助別人。

1

設置共享數據集,而不是附加到您的報告。發佈數據集與發佈數據源或報告非常相似。一旦發佈,點擊它在適當的文件夾中。選擇下拉箭頭並選擇管理。選擇「緩存」並設置持續時間。

通常當我有事情是批量構建相關事務我緩存它們。 (辦公地點,人員等)每天早上,我都會通過這種方式得到最後一天輸入的內容,然後使用該數據而不是每次查詢。據我所知,這也適用於特效和函數。

+0

這對於保持它很好,我會研究緩存。但是,這對我如何進行子查詢有什麼幫助?我失去了如何完成上面列出的任務。上述不直接工作,但被寫爲僞代碼來表達我想要完成的事情。 – Jerry

+0

如果你想做一個如果然後分組,我會創建一個「計算」列,但我很困惑你的符號,因爲它看起來像獲得一個單一的列應該有多個,因爲這看起來像SSRS中的表達式圖表級別不是項目級別。你是在線上還是在圖表中設置這個表達式?我從來沒有使用過這種表示法,所以我很好奇,因爲它看起來像是在爲所有返回單個值做'/或'事件,當我通常看到Y軸是'數量'並且x是'日期'時tradiotinal格式與兩個值的變化。 – djangojazz