2010-08-20 146 views
1

有誰知道如何/如果您可以在水晶報表的選擇公式中使用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 

回答

0

您可以使用最小值()函數?它在Crystal的幫助文件中被引用。

0

您是否試圖在選擇公式中聚合數據,然後根據該聚合過濾數據?我懷疑這會起作用(可能是錯誤的,沒有嘗試過)。我建議:
1.饋送晶體預過濾數據

2.包括您的選擇公式作爲第二個數據集,並將兩個表連接在一起,一旦它們都在Crystal中。

0

是的,您可以在GROUP選擇公式中使用Crystal的聚合函數(最小值,最大值等)。但是,對於一個非常大的數據集來說,這可能是一個糟糕的主意。原因是(也適用於記錄選擇),在選擇公式中使用Crystal函數很可能不會繼續執行Crystal生成併發送到數據庫的實際SQL查詢。這意味着選擇不會發生在數據庫服務器上,並且ENTIRE數據集必須返回到Crystal,然後本地計算機必須通過它來篩選出不符合選擇條件的行/組。

而是使用SQL表達式。您可以使用表達式從記錄的子集中返回最小日期,然後在選擇公式中使用它。這些將包含在Crystal發送到數據庫的SQL查詢中。