行中的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]。
需要帮助。
答
假设你只有实际上有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"))
如果在第一列中需要一个零,则表达式必须更改为此。
=IIF(
Previous(RunningValue(Fields!Credit.Value-Fields!Debit.Value, Sum, "DataSet1"))=Nothing
,0
,Previous(RunningValue(Fields!Credit.Value-Fields!Debit.Value, Sum, "DataSet1"))
)
然后给我们这个输出。
+0
感谢您的解决方案。我已经实现了同样的解决 –
做什么实际的数据你在你的数据库(或其它地方的数据来自)你只是有SRNO;日期;信用;借记卡?你想在SSRS或SQL中完成这项工作吗?请说明您正在使用的报告服务和数据库的版本。 –