【发布时间】:2013-01-07 05:33:51
【问题描述】:
经过一周的谷歌搜索,我还没有找到解决问题的方法,希望有人能提供帮助。如果这个问题已经得到解答,我提前道歉,尽管我搜索得很辛苦。
我正在创建一份我们称之为“老年债务人”的报告。此报告的一部分要求我们将去年总计、今年总计以及两者的百分比作为列。另一个要求是将“这一年”(即从今天到 1 年前的日期)分解为逾期 30 天、逾期 60 天和逾期 90 天以上的帐户。我已返回一个数据集中的所有数据,其中包含以下列
(#) Accounts、Country、AccountType、OverdueAmount、OverdueTime(30、60、90 和去年)和 YearGroup(今年为 TY,去年为 LY)
我创建了 2 个行组(国家和帐户类型(国家的子组)和 2 个列组(总逾期和逾期时间 - 彼此无关...逾期时间将金额分成 30 , 60 90 天等,而 Total overdue 给了我去年和今年的数据)
Total Overdue 使用以下方法在组中的 2 列之间进行拆分
=format(iif(Fields!YearGroup.Value = "LY",Sum(Fields!OverdueAmount.Value), iif((Fields!YearGroup.Value = "TY"), Sum(Fields!OverdueAmount.Value), 0)), "C")
这很好用!我的问题是客户然后想要一个列旁边的列,基本上为他做了一个百分比 - 总和(今年 - 去年)/去年。所以基本上我想要这个布局
去年,今年,百分比
我尝试在组中创建另一列,但这只是在之前的每一列旁边插入了一个新列,所以我最终得到了
去年,专栏,今年,专栏
然后我尝试在组旁边创建一个列,并使用“AccountType”行的范围和 iif 语句来区分去年和今年
(iif(Fields!YearGroup.Value = "TY", sum(overdueamount.value), 0) -iif(fields!YearGroup.Value = "LY", sum(overdueamount.value), 0)
试图得到一个基本的区别,它似乎想把所有的东西都加起来——一个例子是
Last year = $200
This Year = $100
差价应该是 100 美元 - RS 告诉我是 300 美元!
(我已经尝试了无数次迭代,包括像上面那样嵌套 iif 语句)
无论 YearGroup 的值是多少,它似乎都在汇总所有内容 - 我有一种感觉,这就是 RS 呈现组的方式 - 如果其中一个年份值为 0(假设去年有 200 美元的帐户类型和这个年有 0 美元)那么它“似乎”也可以做我想做的事。
我曾考虑在 SQL 中执行此操作,但我认为返回一个数据集太复杂了(我现在已经做了一些疯狂的联合以将其全部放入一个 DS)。
有没有什么方法可以根据组中 2 个动态创建的列之间的差异计算出 % 值?如果需要,很高兴尝试提供更多详细信息...
【问题讨论】:
标签: sql-server reporting-services reportingservices-2005