在SSRS报告中添加时间戳值

时间:2013-08-20 05:26:38

标签: reporting-services ssrs-2008

我正在尝试创建SSRS报告,并且在某些计算中遇到问题。

我的列数很少,包含101.45,25,0.15,3.30等值。

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

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

任何人都可以帮我解决这个问题。

提前感谢你。

2 个答案:

答案 0 :(得分:0)

您无法直接添加值。您需要先将值转换为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中解决问题然后在报表设计中更容易。

答案 1 :(得分:0)

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

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

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