0

我有一个包含 4 列的 SQL 表

1) ID 2) EquipmentID 3) 日期 4) 小时,例如 10000

我有一个显示此表内容的 SSRS 报告

从和到日期参数用于选择记录的日期范围

该表按设备分组

在设备组中,我在下面添加了一行,在小时列中使用以下表达式

Last(Fields!Hours.Value) - First(Fields!Hours.Value) = "实际使用的总小时数" 例如 10000 - 9500 = 500

这不会返回正确的“使用的总实际小时数”

表达式不正确

其实应该...

Last(Fields!Hours.Value) - PREVIOUS(First(Fields!Hours.Value)) = "实际使用的总小时数" 例如 10000 - 9450 = 550

我的问题是如何获得 PREVIOUS(First(Fields!Hours.Value)?

通过选择参数日期范围,我不检索 PREVIOUS(First(Fields!Hours.Value)

谢谢!

4

2 回答 2

0

感谢您的提示 Aftab

SQL 已按日期排序

也许该表的示例可以让您更好地理解我为什么需要 PREVIOUS(First(Fields!Hours.Value)


日期:2012-09-01 Hours = 9500 (这是一天结束时记录的总小时数,用作第二天的开始小时数)

...

日期:2012-09-30 小时 = 10000


因此,如果我使用表达式...

Last(Fields!Hours.Value) - First(Fields!Hours.Value) = "实际使用的总小时数" 例如 10000 - 9500 = 500

这将返回从 2012 年 9 月 2 日到 2012 年 9 月 30 日 500 的“实际使用总小时数”

我需要 PREVIOUS(First(Fields!Hours.Value) 来计算从 2012-09-01 到 2012-09-30 的正确“实际使用总小时数”

于 2012-10-15T07:51:23.580 回答
0

要获得报告表达式的预期结果,即 Last(Fields!Hours.Value) - First(Fields!Hours.Value),应在 T-Sql/SP 中实现适当的Order BY FieldName子句。

于 2012-10-15T07:31:59.037 回答