Поделиться через


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

Данный раздел относится к классам 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 возвращают данные того же типа, что и обрабатываемые данные.

    Например, мастер добавления классов создает элемент данных long m_lSales в соответствии с типом значений столбца "Sales", но его необходимо заменить элементом данных 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.

ПримечаниеПримечание

На самом деле, мастер присваивает имена элементов данных без венгерских префиксов.Например, мастер выдаст m_Sales для столбца 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)