在SSRS报告中添加时间戳值



我正在尝试创建一个SSRS报告,但在某些计算中遇到了问题。

我有一些列包含101.45、25、0.15、3.30这样的值。

实际上,这些值是时间值,现在将所有这些值相加得到结果129.9。

现在的问题是,当小数部分超过.60时,我需要在数字上加一,就像我需要的最终结果是130.30一样。

有谁能帮我解决这个问题吗。

提前感谢您。

不能直接添加值。您需要首先将值转换为100的比例。添加它,然后将其转换回您的60分制。

SELECT SUM(Floor(Column1)+(Column1%1)*100/60) FROM TimeAdd

http://sqlfiddle.com/#!3/b5d55/8

在SSRS 中执行此操作

=
(Int(ReportItems!TextBox1.Value) + (ReportItems!TextBox1.Value Mod 1)*100/60)
+
(Int(ReportItems!TextBox2.Value) + (ReportItems!TextBox2.Value Mod 1)*100/60)
+
(Int(ReportItems!TextBox3.Value) + (ReportItems!TextBox3.Value Mod 1)*100/60)
+
(Int(ReportItems!TextBox4.Value) + (ReportItems!TextBox4.Value Mod 1)*100/60)

但是上面会给你130.5,但你可能想要130.3。你需要把上面的总和换算回60分制。您可以将所有内容存储在另一个变量中,然后应用缩放,或者编写一大块代码。

=INT(ReportItems!AbsoluteSum.Value) + (ReportItems!AbsoluteSum.Value Mod 1)*60/100

只是一个建议在SQL中解决问题比在报表设计中更容易。

您可以在数据集中创建自定义字段,在其中您可以编写将时间值转换为整数值或十进制值的表达式。

您需要对参与计算的数据库中的所有字段重复此过程,最后在数据集中,比如说,您有来自数据库的七个标准列和七个自定义列,您可以稍后使用这些列。

另一种解决方案可以是在SSRS中编写一些自定义代码,在这里您可以创建接受参数的函数,并为您进行计算。

最新更新