1

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

我有几列包含 101.45、25、0.15、3.30 等值。

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

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

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

提前谢谢你。

4

2 回答 2

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 中解决问题比在报表设计中更容易。

于 2013-08-20T05:50:09.770 回答
0

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

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

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

于 2013-08-20T06:23:25.090 回答