Sql 报表生成器3.0 WHERE子句和案例语句

Sql 报表生成器3.0 WHERE子句和案例语句,sql,reporting-services,ssrs-2008-r2,Sql,Reporting Services,Ssrs 2008 R2,我有一个钻取报告,与主报告配合得很好。我想修改钻取报告,但WHERE子句有问题。主报告是具有不同账龄段的摘要,如下所示: Team Total 30 60 90 120 A xxxx xxxx xxxxx xxxxx xxxxx B xxxx xxxx xxxx xxxxx xxxxx C

我有一个钻取报告,与主报告配合得很好。我想修改钻取报告,但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子句如下所示:其中a.lgp=Parm1。Parm1是用户选择的团队的字段值

我想修改WHERE子句,以便在用户选择team或amount字段中的1个字段时可以使用它。我可以在WHERE子句中对此使用CASE语句吗

如果用户选择一个金额字段,则WHERE子句在30/60/90中的外观如下: 其中a.lgp=Parm1,ar.lgp=Parm2

Parm2可以是1,2,3。但是,如果他们选择120,那么WHERE子句将如下所示:

a、 lgp=Parm1和ar.U桶=>4

我可以创建3份钻取报告,共1份,2份30/60/90,3份120,但我必须维护3份报告。我宁愿修改WHERE子句来处理这三种情况


如有任何建议,将不胜感激。谢谢你的帮助……

我认为你做不到,否则现在可能有人会插话告诉我们怎么做。而且我过去也尝试过类似的事情。。但是

下面显示了表中的所有信息

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)

很明显,这是刚刚拼凑出来的,但希望这能让您走上正确的道路,找到一些可行的方法。

谢谢您的帮助。我将以此为起点,看看我能做些什么。再次感谢。