Partilhar via


O conjunto de registros: Obtendo somas e outros resultados agregados (ODBC)

Este tópico se aplica às classes MFC ODBC.

Este tópico explica como obter resultados agregados usando os seguintes SQL palavras-chave:

  • Soma calcula o total dos valores em uma coluna com um tipo de dados numéricos.

  • MIN extrai o menor valor em uma coluna com um tipo de dados numéricos.

  • MAX extrai o maior valor em uma coluna com um tipo de dados numéricos.

  • AVG calcula um valor médio de todos os valores em uma coluna com um tipo de dados numéricos.

  • CONTAGEM de conta o número de registros em uma coluna de qualquer tipo de dados.

Você pode usar essas funções SQL para obter informações estatísticas sobre os registros na fonte de dados, em vez de fazê-lo para extrair os registros da fonte de dados. O conjunto de registros é criado geralmente consiste em um único registro (se todas as colunas são agregados) que contém um valor. (Pode haver mais de um registro se você usou um GROUP BY cláusula.) Esse valor é o resultado do cálculo ou extração efetuada pela função SQL.

Dica

Para adicionar um SQL GROUP BY cláusula (e possivelmente um HAVING cláusula) à instrução SQL, acrescentá-la até o final da m_strFilter. For example:

m_strFilter = "sales > 10 GROUP BY SALESPERSON_ID";

Você pode limitar o número de registros, que você pode usar para obter resultados agregados, filtrando e classificando as colunas.

Aviso

Alguns operadores de agregação retornam um tipo de dados diferentes das colunas através do qual eles são de agregação.

  • Soma e AVG podem retornar o próximo tipo de dados maior (por exemplo, chamar com int retorna longo ou double).

  • CONTAGEM de em geral retorna longo independentemente do tipo de coluna de destino.

  • MAX e MIN retornar o mesmo tipo de dados como colunas calculam por eles.

    Por exemplo, o Add Class assistente cria long m_lSales para acomodar uma coluna de vendas, mas você precisa substituí-lo com um double m_dblSumSales o membro de dados para acomodar o resultado agregada. Consulte o exemplo a seguir.

Para obter um resultado agregado para um conjunto de registros.

  1. Criar um conjunto de registros, conforme descrito em a adição de um consumidor ODBC do MFC que contém as colunas que você deseja obter resultados agregados.

  2. Modificar o DoFieldExchange a função do conjunto de registros. Substitua a seqüência de caracteres que representa o nome de coluna (o segundo argumento do RFX chamadas de função) com uma seqüência de caracteres que representa a função de agregação na coluna. Por exemplo, substitua:

    RFX_Long(pFX, "Sales", m_lSales);
    

    com:

    RFX_Double(pFX, "Sum(Sales)", m_dblSumSales)
    
  3. Abra o conjunto de registros. O resultado da operação de agregação é deixado no m_dblSumSales.

ObservaçãoObservação

O assistente realmente atribui nomes de membros de dados sem prefixos húngaras. Por exemplo, o assistente produziria m_Sales para uma coluna de vendas, em vez de m_lSales nome usado anteriormente para ilustração.

Se você estiver usando um CRecordView da classe para exibir os dados, você precisará alterar a chamada de função DDX para exibir o novo valor de membro de dados; Nesse caso, alterá-lo de:

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

Para:

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

Consulte também

Conceitos

O conjunto de registros (ODBC)

O conjunto de registros: Como os conjuntos de registros selecionar registros (ODBC)