Формула выбора Crystal Reports - PullRequest
1 голос
/ 20 августа 2010

Кто-нибудь знает, как / если вы можете использовать MIN () в формуле выбора для Crystal Report?

Я хочу сделать это:

    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

Ответы [ 3 ]

0 голосов
/ 21 августа 2010

Вы пытаетесь агрегировать данные в формуле выбора, а затем фильтровать данные на основе этой агрегации?Я сомневаюсь, что это сработает (может быть неправильно, не пытался).Я бы предложил:
1. подачу предварительно отфильтрованных данных Crystal
ИЛИ
2. включая формулу выбора в качестве второго набора данных и связать вместе две таблицы, как только они оба в Crystal.

0 голосов
/ 21 августа 2010

Да, вы можете использовать функции агрегирования Crystal (минимум, максимум и т. Д.) В формуле выбора GROUP.Но это, вероятно, плохая идея для очень большого набора данных.Причина (и это касается выбора записей) заключается в том, что использование функций Crystal в формулах выбора, скорее всего, не будет перенесено на фактический запрос SQL, который Crystal генерирует и отправляет в базу данных.Это означает, что выбор не будет выполнен на сервере базы данных, и весь набор данных должен будет быть отправлен обратно в Crystal, а затем локальный компьютер должен выполнить его обработку, чтобы отфильтровать строки / группы, которые не соответствуют критериям выбора..

Вместо этого используйте выражение SQL.Вы можете использовать выражение для возврата минимальной даты из подмножества записей и использовать ее вместо этого в формуле выбора.Они будут включены в SQL-запрос, который Crystal отправляет в базу данных.

0 голосов
/ 20 августа 2010

Можете ли вы использовать функцию минимума ()?На него есть ссылка в справочном файле Crystal.

...