0

我正在寻求帮助,以在 SSRS 中创建一个减去 SUMS 的 VB 表达式。我有一个数据集,其中包含帐户和相应的货币/金额值。我需要帮助创建一个表达式,该表达式将指定范围内一组帐户的金额/金额值相加,然后从另一个范围内的金额/金额总额中减去它。具体来说:

(Sum(amt) where acct between 40000 and 49999) -
(Sum(amt) where (acct between 50000 and 59999) or (acct between 66000 and 69999)) -
(Sum(amt) where acct between 76000 and 79825) -
(Sum(amt) where acct between 89000 and 90399)

确实需要帮助将此 SQL 逻辑转换为 VB 表达式以用于 SSRS 中的文本框。任何建议都会非常有帮助!谢谢!

4

1 回答 1

1

textbox 只能捕获数据集的第一个值,因此如果您转到文本框的表达式构建器,您会看到数据集中没有可用的字段。但是,可以使用数据集字段上的聚合函数。

因此,您可以为数据集创建一个计算字段,并使用适当的符号向其中添加金额值,以便该计算字段中所有值的总和代表您所需的解决方案。

例如,将一个新的计算字段添加到您的数据集。在字段源中,添加适当的表达式,例如:

=IIF(Fields!acct.Value>=40000 AND Fields!acct.Value<=49999, CInt(Fields!amt.Value),
   IIF(   (Fields!acct.Value>=50000 AND Fields!acct.Value<=59999)  OR
          (Fields!acct.Value>=66000 AND Fields!acct.Value<=69999)  OR
          (Fields!acct.Value>=76000 AND Fields!acct.Value<=79825)  OR
          (Fields!acct.Value>=89000 AND Fields!acct.Value<=90399), 
                 CInt(0 - Fields!amt.Value), CInt(0)
      )
    )

这使值保持在 40000 和 49999 之间。使所有需要减去的值变成负值。以及您不希望将其视为 0 的所有其他内容。

因此,当你打电话

Sum(Fields!calcfield.Value, "your dataset name")

从文本框中,添加 40000 到 49999 之间的值,然后减去所需范围内的值。

请根据需要更改计算字段的表达式,该过程将起作用。您不应该直接从文本框中浏览数据集中的所有值。

希望能帮助到你。

于 2012-09-06T15:02:42.877 回答