[英]Report Builder 3.0 WHERE clause with CASE statement
我有一個追溯報表,它與主報表非常吻合。 我想修改追溯報表,但在使用WHERE子句時遇到麻煩。 主報告是具有不同老化桶的摘要,如下所示:
Team Total 30 60 90 120
A xxxx xxxx xxxxx xxxxx xxxxx
B xxxx xxxx xxxx xxxxx xxxxx
C xxxx xxxx xxxx xxxxx xxxxx
當前報告僅在“團隊”值上包含超鏈接。 當用戶單擊團隊之一時,追溯報表將顯示構成總金額的記錄的詳細信息。 效果很好。
我想做的是修改追溯報表,以便用戶可以為特定團隊選擇金額字段之一(30/60/90/120)。
追溯報表上的當前WHERE子句如下所示:“ WHERE a.lgp = Parm1”。 Parm1是用戶選擇的團隊的字段值。
我想修改WHERE子句,以便在用戶選擇團隊或數量字段之一時它將起作用。 我可以在WHERE子句中使用CASE語句嗎?
如果用戶選擇一個數量字段,則WHERE子句在30/60/90中看起來像這樣:WHERE a.lgp = Parm1和ar.aging_bucket = Parm2。
Parm2將為1,2,3。但是,如果它們選擇120,則WHERE子句將如下所示:
a.lgp = Parm1和ar.aging_bucket => 4。
我可以創建3個報表的追溯副本(1)總計,(2)30/60/90和(3)120,但隨后我必須維護3個報告。 我寧願修改WHERE子句以處理所有3種情況。
任何建議將不勝感激。 謝謝你的幫助.....
我認為您無法做到這一點,否則,現在可能有人會插話並告訴我們如何操作。 另外我過去也嘗試過類似的事情..但是...
下面顯示表中的所有信息。
declare @foo int = 1
select * from MySuperCoolTable
where @foo = 1
因此,您可以執行以下操作:
select column1, column2 from TheNameOfTheTable
where
(((@param1 = 30) or (@param1 = 60) or (param1 = 90)) and ar.aging_bucket =>4 and whatever else here)
or
(@param1 = 120 and whatever else here)
顯然,這只是在一起,但希望這可以使您正確地找到可行的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.