Набор записей. Определение сумм и других статистических результатов (ODBC)

Примечание.

Мастер потребителя MFC ODBC недоступен в Visual Studio 2019 и более поздних версиях. При этом вы по-прежнему можете создать потребитель вручную.

Этот раздел относится к классам ODBC библиотеки MFC.

В этой статье объясняется, как получить статистические результаты с помощью следующих ключевых слов 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";

Количество записей, используемых для получения статистических результатов, можно ограничить путем фильтрации и сортировки столбцов.

Внимание

Некоторые статистические операторы возвращают данные не того типа, который имеют обрабатываемые столбцы.

  • SUM и AVG могут возвращать следующий более крупный тип данных (например, вызов с int возвратом LONG или double).

  • COUNT обычно возвращает LONG независимо от типа целевого столбца.

  • MAX и MIN возвращают тот же тип данных, который имеют обрабатываемые столбцы.

    Например, если мастер добавления класса создает элемент данных longm_lSales для столбца "Продажи", для статистического результата его нужно заменить на элемент данных double m_dblSumSales. См. следующий пример.

Получение статистического результата для набора записей

  1. Создайте набор записей со столбцами, для которых нужно получить статистические результаты, как описано в статье Добавление потребителя ODBC MFC.

  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)