Sdílet prostřednictvím


Sada záznamů: Získávání součtů a jiných agregačních výsledků (ODBC)

Poznámka:

Průvodce příjemcem rozhraní ODBC MFC není v sadě Visual Studio 2019 a novější k dispozici. Příjemce můžete přesto vytvořit ručně.

Toto téma se vztahuje na třídy MFC ODBC.

Toto téma vysvětluje, jak získat agregované výsledky pomocí následujících klíčových slov SQL :

  • FUNKCE SUMA vypočítá součet hodnot ve sloupci pomocí číselného datového typu.

  • Funkce MIN extrahuje nejmenší hodnotu ve sloupci s číselným datovým typem.

  • Funkce MAX extrahuje největší hodnotu ve sloupci s číselným datovým typem.

  • AVG vypočítá průměrnou hodnotu všech hodnot ve sloupci s číselným datovým typem.

  • COUNT spočítá počet záznamů ve sloupci libovolného datového typu.

Tyto funkce SQL slouží k získání statistických informací o záznamech ve zdroji dat, nikoli k extrakci záznamů ze zdroje dat. Vytvořená sada záznamů se obvykle skládá z jednoho záznamu (pokud jsou všechny sloupce agregované), který obsahuje hodnotu. (Pokud jste použili nějaký záznam, může existovat více než jeden záznam.KLAUZULE GROUP BY .) Tato hodnota je výsledkem výpočtu nebo extrakce prováděné funkcí SQL.

Tip

Pokud chcete do příkazu SQL přidat klauzuli SQL GROUP BY (a případně klauzuli HAVING ), připojte ji na konec m_strFilter. Příklad:

m_strFilter = "sales > 10 GROUP BY SALESPERSON_ID";

Počet záznamů, které používáte k získání agregovaných výsledků, můžete omezit filtrováním a řazením sloupců.

Upozornění

Některé operátory agregace vrací jiný datový typ než sloupce, u kterých agregují.

  • Funkce SUM a AVG můžou vrátit další větší datový typ (například volání s návratem int LONG nebo double).

  • Funkce COUNT obvykle vrací hodnotu LONG bez ohledu na typ cílového sloupce.

  • Funkce MAX a MIN vrátí stejný datový typ jako sloupce, které počítají.

    Průvodce přidáním třídy například vytvoří long m_lSales, aby vyhovoval sloupci Sales, ale musíte ho nahradit datovým double m_dblSumSales členem, aby se přizpůsobil agregovanému výsledku. Viz následující příklad.

Získání agregovaného výsledku sady záznamů

  1. Vytvořte sadu záznamů, jak je popsáno v části Přidání příjemce ROZHRANÍ ODBC MFC obsahující sloupce, ze kterých chcete získat agregované výsledky.

  2. Upravte funkci DoFieldExchange pro sadu záznamů. Nahraďte řetězec představující název sloupce (druhý argument volání funkce RFX ) řetězcem představujícím agregační funkci ve sloupci. Nahraďte například:

    RFX_Long(pFX, "Sales", m_lSales);
    

    textem:

    RFX_Double(pFX, "Sum(Sales)", m_dblSumSales)
    
  3. Otevřete sadu záznamů. Výsledek agregační operace zůstane v m_dblSumSales.

Poznámka:

Průvodce ve skutečnosti přiřadí názvy datových členů bez maďarštiny. Průvodce by například vytvořil m_Sales sloupec Sales (Prodej) místo názvu použitého m_lSales dříve pro ilustraci.

Pokud k zobrazení dat používáte CRecordView třídy, musíte změnit volání funkce DDX pro zobrazení nové hodnoty datového členu; v tomto případě změnit z:

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

Do:

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

Viz také

Sada záznamů (ODBC)
Sada záznamů: Jak sady záznamů vybírají záznamy (ODBC)