我的钻取报告与主报告一致。我想修改钻取报告,但是遇到了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子句,以便在用户选择团队或1个金额字段时它可以工作。我可以在WHERE子句中为此使用CASE语句吗?
如果用户选择了一个金额字段,WHERE子句对于30/60/90看起来像这样: WHERE.lgp = Parm1和ar.aging_bucket = Parm2。
Parm2将是1,2,3。但是,如果他们选择120,那么WHERE子句将是这样的:
a.lgp = Parm1和ar.aging_bucket => 4.
我可以通过报告创建3份钻取副本(1)Total,(2)30/60/90和(3)120但是我必须保留3份报告。我宁愿修改WHERE子句来处理所有这三种情况。
任何建议都将不胜感激。谢谢你的帮助......
答案 0 :(得分:0)
我认为你不能做到这一点,否则有人可能会在现在说明并告诉我们如何做。另外我过去曾尝试过类似的东西......但是......
以下显示表格中的所有信息。
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)
显然,这只是被抛在了一起,但希望这能让你走上正确的道路,找到有用的东西。