【问题标题】:How do you create a SQL expression to calculate the total of multiple data fields?如何创建 SQL 表达式来计算多个数据字段的总和?
【发布时间】:2014-02-20 09:02:13
【问题描述】:

我正在尝试在列表报告的每一行中添加最终数据字段。这些数据字段记录了申请人工作的小时数。期望的结果是表达式总共显示 442 小时。这是因为第一个字段值为 420 小时,第二个字段值为 22 小时。其他字段值为零。在下面的第一个示例中,报告生成字符的串联,420220000。

=Fields!EstHrsTotal1.Value+Fields!EstHrsTotal2.Value+Fields!EstHrsTotal3.Value+Fields!EstHrsTotal4.Value+Fields!EstHrsTotal5.Value+Fields!EstHrsTotal6.Value

在第二个示例中,使用 SUM 运算符会导致报告中出现 #Error。

=SUM(Fields!EstHrsTotal1.Value+Fields!EstHrsTotal2.Value+Fields!EstHrsTotal3.Value+Fields!EstHrsTotal4.Value+Fields!EstHrsTotal5.Value+Fields!EstHrsTotal6.Value)

计算这六个数据字段总值之和的正确方法是什么?

【问题讨论】:

  • 报告在 MS Report Builder 中构建。很抱歉造成混乱。

标签: sql list sum report expression


【解决方案1】:

看起来您的 EstHrsTotal 值是字符串。您需要将它们转换为整数(或小数,如果您需要考虑几分之一小时)。您可以在 sql 或 SSRS 报告中执行此操作:

SQL:

select
    cast(EstHrsTotal1 as int) EstHrsTotal1,
    cast(EstHrsTotal2 as int) EstHrsTotal2,
    cast(EstHrsTotal3 as int) EstHrsTotal3,
    cast(EstHrsTotal4 as int) EstHrsTotal4,
    cast(EstHrsTotal5 as int) EstHrsTotal5,
    cast(EstHrsTotal6 as int) EstHrsTotal6
from dbo.YourTable

SSRS 报告:

=CInt(Fields!EstHrsTotal1.Value)+CInt(Fields!EstHrsTotal2.Value)+CInt(Fields!EstHrsTotal3.Value)+CInt(Fields!EstHrsTotal4.Value)+CInt(Fields!EstHrsTotal5.Value )+CInt(Fields!EstHrsTotal6.Value)

【讨论】:

  • 如果我的回复回答了您的问题,请考虑将其标记为答案。谢谢! :)
  • 如何将其标记为最佳答案?我没有看到任何显示的按钮。
  • 我从来没有在这里问过问题,但是我的答案旁边应该有一个灰色的复选标记,您可以单击将其切换为绿色。 meta.stackoverflow.com/help/someone-answers 谢谢! :)
猜你喜欢
  • 2018-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多