分享方式:


資料錄集:取得 SUM 和其他彙總結果 (ODBC)

注意

Visual Studio 2019 和更新版本中未提供 MFC ODBC 消費者精靈。 您仍然可以手動建立消費者。

本主題適用於 MFC ODBC 類別。

本主題說明如何使用下列 SQL 關鍵字取得彙總結果:

  • SUM:計算資料行中具有數值資料類型之值的總計。

  • MIN:擷取資料行中具有數值資料類型的最小值。

  • MAX:擷取資料行中具有數值資料類型的最大值。

  • AVG:計算資料行中具有數值資料類型之所有值的平均值。

  • COUNT:計算任何資料類型的資料行中的資料錄數目。

您可以使用這些 SQL 函式,取得資料來源中資料錄的統計相關資訊,而不是從資料來源擷取資料錄。 建立的資料錄集通常由包含一個值的單一資料錄 (如果所有資料行都是彙總值) 所組成 (如果您使用 GROUP BY 子句,可能會有多個資料錄)。這個值是 SQL 函式所計算或擷取的結果。

提示

若要將 SQL GROUP BY 子句 (而且可能是 HAVING 子句) 加入到您的 SQL 陳述式中,請將其附加至 m_strFilter 的結尾。 例如:

m_strFilter = "sales > 10 GROUP BY SALESPERSON_ID";

您可以透過篩選和排序資料行,限制您用來取得彙總結果之資料錄的數目。

警告

某些彙總運算子會從它們彙總的資料行,傳回不同的資料類型。

  • SUMAVG 可能會傳回次大的資料類型 (例如,使用 int 呼叫會傳回 LONGdouble)。

  • 不論目標資料行是什麼類型,COUNT 通常會傳回 LONG

  • MAXMIN 會傳回與所計算之資料行相同的資料類型。

    例如,[加入類別] 精靈會建立 longm_lSales 來容納 Sales 資料行,但您需要將此取代為 double m_dblSumSales 資料成員,才能容納彙總結果。 請參閱下列範例。

若要取得資料錄集的彙總結果

  1. 建立包含您要取得彙總結果所在資料行的資料錄集,如加入 MFC ODBC 消費者中所述。

  2. 修改資料錄集的 DoFieldExchange 函式。 將表示資料行名稱 (RFX 函式呼叫的第二個引數) 字串取代為表示資料行上彙總函式的字串。 例如,取代:

    RFX_Long(pFX, "Sales", m_lSales);
    

    取代為:

    RFX_Double(pFX, "Sum(Sales)", m_dblSumSales)
    
  3. 開啟資料錄集。 彙總作業的結果會留在 m_dblSumSales 中。

注意

精靈實際上會指派沒有匈牙利文字首的資料成員名稱。 例如,精靈會為 Sales 資料行產生 m_Sales,而非稍早用於圖例的 m_lSales 名稱。

如果您要使用 CRecordView 類別檢視資料,必須變更 DDX 函式呼叫,才能顯示新的資料成員值;在此案例中,將其從下列內容變更為:

DDX_FieldText(pDX, IDC_SUMSALES, m_pSet->m_lSales, m_pSet);

變更為:

DDX_FieldText(pDX, IDC_SUMSALES, m_pSet->m_dblSumSales, m_pSet);

另請參閱

資料錄集 (ODBC)
資料錄集:資料錄集選取資料錄的方式 (ODBC)