簡體   English   中英

帶CASE語句的Report Builder 3.0 WHERE子句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM