行中的SSRS数据处理

问题描述:

我有以下数据。行中的SSRS数据处理

SRNO Date   Credit Debit ClosingBal OpeningBal 
1  01 Oct 2017  10000 100  9900  0 
2  02 Oct 2017  20000 200  29700  9900 
3  03 Oct 2017  30000 300  59400  29700 
4  04 Oct 2017  40000 400  99000  59400 
5  05 Oct 2017  50000 500  148500  99000 

这里我操纵两列ClosingBal和OpeningBal。 期末余额是信用卡和借记卡的差额+最后一天的余额。

我需要显示期末余额,例如最近几天的期末余额。即在第一行打开余额总是为0(零),并且从第二行数据刚刚从行[i]列[j]复制到行[i + 1]列[j]。

需要帮助。

+0

做什么实际的数据你在你的数据库(或其它地方的数据来自)你只是有SRNO;日期;信用;借记卡?你想在SSRS或SQL中完成这项工作吗?请说明您正在使用的报告服务和数据库的版本。 –

假设你只有实际上有SRNO;日期;信贷和借记在你的数据集,然后你可以做到以下几点。

我用下面重现您的样本数据集,并把它称为DataSet1

DECLARE @t TABLE(SRNO int, TranDate Date, Credit int, Debit int) 
INSERT INTO @t VALUES 
(1, '20171001', 10000, 100), 
(2, '20171002', 20000, 200), 
(3, '20171003', 30000, 300), 
(4, '20171004', 40000, 400), 
(5, '20171005', 50000, 500) 

SELECT * FROM @t 

我然后创造出所有的四列加两个附加列,一个用于closingbal,一个用于openingbal一个简单的表格。

套装ClosingBal表达:

=RunningValue(Fields!Credit.Value-Fields!Debit.Value, Sum, "DataSet1") 

设置OpeningBal表达

=Previous(RunningValue(Fields!Credit.Value-Fields!Debit.Value, Sum, "DataSet1")) 

这给了我们下面的输出。 enter image description here

如果在第一列中需要一个零,则表达式必须更改为此。

=IIF(
    Previous(RunningValue(Fields!Credit.Value-Fields!Debit.Value, Sum, "DataSet1"))=Nothing 
    ,0 
    ,Previous(RunningValue(Fields!Credit.Value-Fields!Debit.Value, Sum, "DataSet1")) 
) 

然后给我们这个输出。

enter image description here

+0

感谢您的解决方案。我已经实现了同样的解决 –