Conjunto de registros: Obtendo somas e outros agregação resultados (ODBC)
Este tópico se aplica a 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.
Média 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ê usar essas funções SQL para obter informações estatísticas sobre os registros na fonte de dados em vez de 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 realizado pela função SQL.
Dica |
---|
Para adicionar um SQL GROUP BY cláusula (e possivelmente um HAVING cláusula) à instrução SQL, acrescentá-la ao final da m_strFilter.Por exemplo: |
m_strFilter = "sales > 10 GROUP BY SALESPERSON_ID";
Você pode limitar o número de registros que você usar para obter resultados agregados filtrando e classificando colunas.
Cuidado |
---|
Alguns operadores de agregação retornam um tipo de dados diferentes das colunas que estão agregando. |
SOMA e AVG pode retornar o próximo tipo de dados maior (por exemplo, chamar com int retorna longo ou double).
Contagem de geralmente retorna longo independentemente do tipo de coluna de destino.
MAX e MIN retornar o mesmo tipo de dados como as colunas que eles calculam.
Por exemplo, o Add Class assistente cria longm_lSales para acomodar uma coluna de vendas, mas você precisa substituir com um double m_dblSumSales membro de dados para acomodar o resultado agregado.Consulte o exemplo a seguir.
Para obter um resultado de agregação para um conjunto de registros
Criar um conjunto de registros conforme descrito em Adicionando um consumidor ODBC do MFC que contém as colunas que você deseja obter resultados agregados.
Modificar o DoFieldExchange função do conjunto de registros.Substitua a seqüência de caracteres que representa o nome da 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)
Abra o conjunto de registros.O resultado da operação de agregação é deixado no m_dblSumSales.
Observação |
---|
Realmente, o assistente atribui nomes de membro de dados sem húngaras prefixos.Por exemplo, o assistente deve produzir m_Sales para uma coluna de vendas, em vez de m_lSales nome usado anteriormente para ilustração. |
Se você estiver usando um CRecordView 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, a alteração 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
Recordset: Como conjuntos de registros selecionar registros (ODBC)