Reporting services 我们可以在ssrs报表生成器中获得表的同一列的上述单元格的值吗?怎么用?

Reporting services 我们可以在ssrs报表生成器中获得表的同一列的上述单元格的值吗?怎么用?,reporting-services,sql-server-2014,ssrs-tablix,reportbuilder,Reporting Services,Sql Server 2014,Ssrs Tablix,Reportbuilder,我已编辑了我的问题,并用新的解释替换了先前的解释。 我想我以前无法清楚地解释我的问题。以下是我的设想: Col1 |Col2 |Col3 |Col4 |Col5 | Col6 ------|------|------|-------|------| 3333.00 (Table 1) ------|------|------| 15.00| 0.00| 3348.00 (Table 2) ------|------|------| 0.00|550.00| 279

我已编辑了我的问题,并用新的解释替换了先前的解释。 我想我以前无法清楚地解释我的问题。以下是我的设想:

Col1  |Col2  |Col3  |Col4   |Col5  | Col6  
------|------|------|-------|------| 3333.00 (Table 1)  
------|------|------|  15.00|  0.00| 3348.00 (Table 2)  
------|------|------|   0.00|550.00| 2798.00 (Table 2)
     Sub ToTal:-----|  15.00|550.00| 2798.00 (Table 3)
在本报告中,表1的值(3333.00)为期初余额。对于表2和表3,col4是存款,Col5是取款。表2和表3的最后一列是期末余额。因此,规则是,表2第一行期末余额应计算为(ClosingBalance=期初余额+存款-支取)。第一行期末余额应为第二行期初余额。表3与它们无关

现在的问题是3333.00来自查询,所以我们可以很容易地计算3348.00,但我不知道如何计算2798.00,因为它需要上面单元格的值,即3348.00。类似地,如果表2生成10行,则应根据3333.00计算最后一列的第一个值,其余行将根据上述单元格计算其值,即2798.00取决于3348.00,如果有下一行,则取决于2798.00。所以我做了这件事:

IIf(RowNumber(DatasetName) = 1, value of Table1(3333.00) + and remaining values to calculate 3348.00, Previous(ReportItems!MyTextBoxName.Value) + other values)
现在它给了我一个错误:

textrun“Amount8.段落[0].TextRuns[0]”的值表达式对报表项使用聚合函数。聚合函数只能用于页眉和页脚中包含的报表项

我搜索了不同的论坛,发现我不能在这个场景中使用ReportItems。那么,我该怎么办


我知道我的情况很复杂,解释起来更复杂,但我尽了最大努力。请告诉我您有什么解决方案。

尝试Previous(复制MyTextboxName中使用的表达式)您可以在SQL语句中使用
Lag
函数来获取上一个值

SELECT Field1, Lag(Field1,1,NULL) OVER(PARTITION BY .... ORDER BY ....)
FROM Table1..... 
这里有几篇文章可以帮助您详细理解滞后


您使用的是哪一版本的sql server我使用的是sql server 2014我刚刚浏览了一个关于ReportItems的主题。本主题中提到,要获取文本框的值,请使用“ReportItems!TextboxName.value”。所以我做了类似于:“Previous(ReportItems!MyTextboxName.Value)”的操作,但它给了我一个错误,即“聚合函数只能用于页眉和页脚中包含的报表项”。有什么方法可以处理它吗?我已经尝试过这段代码。它给了我错误的答案,或者说只给了我两行正确的答案。如果表2的行数超过2行,则会给出错误的结果。