Reporting services 在SSRS报告中添加时间戳值

Reporting services 在SSRS报告中添加时间戳值,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我正在尝试创建SSRS报告,但在某些计算中遇到了问题 我有几个列包含像101.45、25、0.15、3.30这样的值 实际上,这些值是时间值,现在将所有这些线索添加到结果129.9中 现在的问题是,当小数部分超过0.60时,我需要在数字上加一,就像我需要的最终结果是130.30一样 谁能帮我解决这个问题 提前感谢。您不能直接添加值。您需要首先将值转换为100的刻度。添加它,然后将其转换回您的60度刻度 SELECT SUM(Floor(Column1)+(Column1%1)*100/60) F

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

我有几个列包含像101.45、25、0.15、3.30这样的值

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

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

谁能帮我解决这个问题


提前感谢。

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

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

在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中编写一些自定义代码,您可以在其中创建接受参数的函数,并为您进行计算。

但这些值位于不同的列中,我需要在SSRS报告中使用该解决方案。感谢您的回复。请查看我的最新回复。您也可以在SSRS表达式中执行相同的操作。@dadaperpvg我做了一些编辑,请查看我更新的响应。正如您所建议的,我用SQL而不是报表设计来解决这个问题。ThanQ:)@Anup Agrawal