【问题标题】:Crystal Reports Selection Formula水晶报表选择公式
【发布时间】:2010-08-20 15:38:44
【问题描述】:

有谁知道如何/是否可以在 Crystal Report 的选择公式中使用 MIN()?

我想这样做:

    Dim sql As String = ""
    Dim startDate As Date = CDate(_startDate.ToString(_dateFormat))
    Dim endDate As Date = CDate(_endDate.ToString(_dateFormat))

    sql = "min({" & tableName & "." & dateFieldName & "}) <= " & startDate & " AND {" & tableName & "." & dateFieldName & "} <= " & endDate & ""

    Return sql

【问题讨论】:

    标签: sql winforms crystal-reports


    【解决方案1】:

    你可以使用 minimum() 函数吗? Crystal 的帮助文件中引用了它。

    【讨论】:

      【解决方案2】:

      您是否尝试在选择公式中聚合数据,然后根据该聚合过滤数据?我怀疑这会起作用(可能是错误的,没有尝试过)。我建议:
      1. 喂水晶预过滤数据

      2. 将您的选择公式作为第二个数据集包含在内,并在两张表都在 Crystal 中时将它们链接在一起。

      【讨论】:

        【解决方案3】:

        是的,您可以在 GROUP 选择公式中使用 Crystal 的聚合函数(最小值、最大值等)。但是,对于一个非常大的数据集,这可能是一个坏主意。原因是(这也适用于记录选择)在选择公式中使用 Crystal 函数很可能不会延续到 Crystal 生成并发送到数据库的实际 SQL 查询。这意味着选择不会在数据库服务器上进行,整个数据集必须被发送回 Crystal,然后本地机器必须通过它来过滤掉不符合选择标准的行/组.

        改为使用 SQL 表达式。您可以使用表达式从记录子集中返回最小日期,并在选择公式中使用它。这些将包含在 Crystal 发送到数据库的 SQL 查询中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-04
          • 2012-02-06
          相关资源
          最近更新 更多