【问题标题】:Filtering out results based on length of reference number根据参考号长度过滤掉结果
【发布时间】:2020-02-06 15:20:39
【问题描述】:

我有一个报告,在报告生成器中,我根据参考号得到重复的行。

在下面的示例中,我是否可以使用表达式删除任何长度超过 9 位的参考号,我已经研究过使用 LEN,但似乎无法让它对我有用!我对 SQL 和报表生成器非常陌生。

【问题讨论】:

    标签: reporting-services duplicates expression reportbuilder3.0


    【解决方案1】:

    您可以在数据集或对象(表格、图表...)上使用过滤器。

    过滤器表达式将是您字段的 LEN - =LEN(Fields!HB-RENT-REF.Value)

    类型为Integer

    操作员是<=

    值将是 9。

    这将只允许 HB-RENT-REF 字段长度为 9 或更少的记录。

    MS Docs: Dataset Filter

    【讨论】:

    • 谢谢大家,我还没有机会考虑实施这些建议。我将在星期一进行破解并告知结果,可能会先尝试表达式,就像我说的那样是报表生成器的新手,还没有准备好做 SQL 语句干杯
    • 谢谢,我很确定这个解决方案已经解决了我的问题,需要其他人检查结果,但现在交易金额看起来更好。我已经尝试过类似的方法,但是在行组和 =LEN(CStr(Fields!HB_RENT_REF.Value) 的表达式上,类型为整数,运算符为 = 9,但我认为将表达式放在 Tablix 上有助于@ CoderLee 我确定您的回答同样有效,但此时对我来说可能有点先进:) 谢谢你们俩
    【解决方案2】:

    如果您使用 SQL 脚本或过程来构建您的报告,那么您可以简单地包含一个 WHERE 子句,该子句使用 LEN() 方法检查您的列的长度是否小于或等于您的条件.所以沿着这些思路:

    SELECT *
    FROM YourTable AS yt
    WHERE LEN(yt.YourColumn) <= 9;
    

    您需要将 * 替换为您想要的特定列,当然也可以使用适当的表格。但这就是在 WHERE 中检查长度的一般思路。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 2021-03-22
      • 2020-02-04
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多