我有幾個數據集。一個由......組成用戶和其他用戶產生一個分子和分母的各種措施,爲用戶SSRS顯示一個用戶的%與所有用戶的百分比。我需要多少個參數?
數據集的列表:
users - to query a list of users for the parameter
measure1 - returns a numerator & denominator "where user_id in (@user)"
measure2 - returns a numerator & denominator "where user_id in (@user)"
measure3 - ...etc
measure4 - ...etc
measure5 - ...etc
參數(在所有措施的使用) @user查詢用戶的數據集
所需的輸出:
Suzy
measure # | Suzy % | all users %
measure 1 | 85 % | 50 %
measure 2 | 35 % | 75 %
measure 3...etc
measure 4...etc
measure 5...etc
到目前爲止,我可以計算出一個用戶的%每項措施或所有用戶%,但不是兩者同時。
我怎麼做的: 我在這裏將我的答案,因爲我給@伊恩 - 普萊斯頓信貸讓我思考。
因此,在我的情況下,最大的挑戰是信息如何呈現的約束。與所有的查詢邏輯工作,這只是一個演示文稿,我掙扎着。 報告本身包含幾個數據集,每個數據集都通過相同的參數並吐出他們自己的分子&分母,然後我創建%(分子/分母)。
具有挑戰性的部分是不得不篩選出一個用戶的%,但在旁邊顯示一個全部用戶%。
我的解決方案是SSRS的一個教訓 - 在SQL中儘可能多地執行操作,因此您不必在SSRS中執行此操作。
對於每次測量我拉在一個總計的最後一行。
,而不是
select user_id
,case when ... then 1 else 0 end as num
,case when ... then 1 else 0 end as denom
group by user_id
我做
select isnull(user_id, 'total') as user_id
,case when ... then 1 else 0 end as num
,case when ... then 1 else 0 end as denom
from ...
where ...
group by user_id with rollup
這給了我一個總數列在每個測量結束查詢
然後,我有2個參數 - @user多值隱藏參數,來自用戶數據集查詢的默認值。 @filter參數,來自用戶數據集查詢的可用值
接下來,我用分子/分母計算創建了2個表格。一個在@user = total上過濾,另一個在@filter上過濾。 我刪除了頁眉&頁腳,並且只保留了一個單元格,因爲我想要上面描述的格式。
我明白你在說什麼,但沿着這篇報道的某處有些東西是棘手的。 例如 = Sum(Fields!num.Value,「measure1」)/ Sum(Fields!denom.Value,「measure1」) 適用於** one **用戶,因爲需要指定measure1的範圍因爲它知道哪個數據集 – jawz101
like,因爲我的參數只是從用戶數據集中指定一個用戶,它將如何知道爲該數據集中的所有用戶重新運行計算來計算總體%? – jawz101
你在(@user)中使用''的事實意味着你選擇了多個用戶......如果你只返回一個用戶的信息,你就會陷入困境 - 你最好的選擇是包括總值作爲數據集中的額外列,並使用'= Fields!Numerator.Value/Fields!AllUsersDenominator.Value'。 –