我正在尝试创建 SSRS 报告,但在某些计算中遇到了问题。
我有几列包含 101.45、25、0.15、3.30 等值。
实际上这些值是时间值,现在将所有这些值相加得到结果 129.9。
现在的问题是当小数部分超过 0.60 时,我需要在数字上加一,比如我需要的最终结果是 130.30。
任何人都可以帮我解决这个问题。
提前谢谢你。
我正在尝试创建 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
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 中编写一些自定义代码,您可以在其中创建函数,该函数接受参数并为您进行计算。