Compartir a través de


Conjunto de registros: Obtener cálculos SUM y otros resultados agregados (ODBC)

Actualización: noviembre 2007

Este tema es aplicable a las clases ODBC de MFC.

Este tema explica cómo obtener resultados agregados mediante las siguientes palabras clave de SQL:

  • SUM   Calcula el total de los valores de una columna con un tipo de datos numérico.

  • MIN   Extrae el valor más pequeño de una columna con un tipo de datos numérico.

  • MAX   Extrae el valor más grande de una columna con un tipo de datos numérico.

  • AVG   Calcula el valor medio de todos los valores de una columna con un tipo de datos numérico.

  • COUNT   Cuenta el número de registros de una columna de cualquier tipo de datos.

Estas funciones SQL se utilizan para obtener información estadística sobre los registros de un origen de datos en lugar de extraerlos de éste. El conjunto de registros creado suele estar compuesto por un solo registro (si todas las columnas son agregadas) que contiene un valor. (Puede haber más de un registro si se utiliza una cláusula GROUP BY.) Este valor es el resultado del cálculo o extracción realizados por la función SQL.

Sugerencia:

Para agregar una cláusula SQL GROUP BY (y posiblemente una cláusula HAVING) a la instrucción SQL, anéxela al final de m_strFilter. Por ejemplo:

m_strFilter = "sales > 10 GROUP BY SALESPERSON_ID";

Se puede limitar el número de registros utilizados para obtener resultados agregados filtrando y ordenando las columnas.

Precaución:

Algunos operadores de agregación devuelven un tipo de datos diferente del de las columnas que están agregando.

  • SUM y AVG pueden devolver el siguiente tipo de datos mayor (por ejemplo, una llamada con un tipo int devuelve LONG o double).

  • COUNT suele devolver LONG sin tener en cuenta el tipo de la columna de destino.

  • MAX y MIN devuelven el mismo tipo de datos que las columnas que calculan.

    Por ejemplo, el asistente Agregar clase crea longm_lSales para acomodar una columna Sales (ventas), pero debe reemplazarse con un miembro de datos double m_dblSumSales para acomodar el resultado agregado. Vea el ejemplo siguiente.

Para obtener un resultado agregado en un conjunto de registros

  1. Cree un conjunto de registros según se describe en Agregar un consumidor ODBC de MFC que contenga las columnas de las cuales desea obtener un resultado agregado.

  2. Modifique la función DoFieldExchange del conjunto de registros. Reemplace la cadena que representa el nombre de columna (el segundo argumento de las llamadas de función RFX) por una cadena que represente la función de agregación en la columna. Por ejemplo, reemplace:

    RFX_Long(pFX, "Sales", m_lSales);
    

    con:

    RFX_Double(pFX, "Sum(Sales)", m_dblSumSales)
    
  3. Abra el conjunto de registros. El resultado de la operación de agregación aparece en m_dblSumSales.

Nota:

El asistente asigna los nombres de miembros de datos sin prefijos de notación húngara. Por ejemplo, el asistente produciría m_Sales para una columna Sales, en lugar del nombre m_lSales usado antes en la ilustración.

Si se está utilizando una clase CRecordView para ver los datos, se debe cambiar la llamada de función DDX para mostrar el nuevo valor de miembro de datos; en este caso, cambiarlo de:

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

Para:

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

Vea también

Conceptos

Conjunto de registros (ODBC)

Conjunto de registros: Cómo se seleccionan los registros (ODBC)