Udostępnij za pośrednictwem


Zestaw rekordów: Uzyskiwanie kwot i innych agregacji wyników (ODBC)

Ten temat dotyczy klas MFC ODBC.

W tym temacie wyjaśniono, jak uzyskać agregacji wyników przy użyciu następujących SQL słowa kluczowe:

  • Suma oblicza sumę wartości w kolumnie typu danych liczbowych.

  • MIN wyodrębnia najmniejszą wartość w kolumnie typu danych liczbowych.

  • MAX wyodrębnia największą wartość w kolumnie typu danych liczbowych.

  • Średnia oblicza średnią wartość wszystkich wartości w kolumnie typu danych liczbowych.

  • Licznik zlicza rekordy w kolumnie dowolnego typu danych.

Aby uzyskać informacje statystyczne dotyczące rekordów w źródle danych, zamiast wyodrębnić rekordy ze źródła danych korzystania z tych funkcji SQL.Rekordów, który jest tworzony zazwyczaj składa się z pojedynczego rekordu (jeśli są wszystkie kolumny), który zawiera wartość.(Może występować więcej niż jeden rekord, jeśli użyto GROUP BY klauzula.) Ta wartość jest wynikiem obliczeń lub ekstrakcji wykonywane przez funkcję SQL.

PoradaPorada

Aby dodać SQL GROUP BY klauzuli (i ewentualnie HAVING klauzuli) do instrukcji SQL, należy dołączyć ją do końca m_strFilter.Na przykład:

m_strFilter = "sales > 10 GROUP BY SALESPERSON_ID";

Można ograniczyć liczbę rekordów, które umożliwia uzyskanie agregacji wyników przez filtrowanie i sortowanie kolumn.

Informacje dotyczące przestrogiPrzestroga

Niektórzy operatorzy agregacji zwracają różne typy danych z kolumn, które są agregowania.

  • Suma i AVG może zwrócić następny większy typ danych (na przykład wywołanie z int zwraca LONG lub double).

  • Licznik zwykle zwraca LONG niezależnie od typu kolumny docelowej.

  • MAX i MIN zwraca ten sam typ danych jako kolumny, ich obliczania.

    Na przykład Add Class Kreator tworzy longm_lSales do kolumny Sprzedaż, ale trzeba wymienić to z double m_dblSumSales członka danych, aby pomieścić wynikiem agregacji.Zobacz przykład poniżej.

Aby uzyskać wynik agregacji dla zestawu rekordów

  1. Utwórz zestaw rekordów, jak opisano w Dodawanie konsumenta ODBC MFC zawierający kolumny, z których chcesz uzyskać agregacji wyników.

  2. Modyfikowanie DoFieldExchange funkcji zestawu rekordów.Zastąp ciąg znaków reprezentujący nazwę kolumny (drugi argument RFX działać wywołań) z ciągiem reprezentującym funkcji agregacji w kolumnie.Na przykład zamienić:

    RFX_Long(pFX, "Sales", m_lSales);
    

    z:

    RFX_Double(pFX, "Sum(Sales)", m_dblSumSales)
    
  3. Otwórz zestaw rekordów.Wynik operacji agregacji jest pozostawiony w m_dblSumSales.

[!UWAGA]

Kreator przypisuje faktycznie nazwy składników danych bez węgierski prefiksów.Na przykład Kreatora wywołałoby m_Sales dla kolumny Sprzedaż, a nie m_lSales nazwa używana wcześniej na ilustracji.

Jeśli używasz CRecordView klasy, aby wyświetlić dane, trzeba zmienić wywołania funkcji DDX, aby wyświetlić nową wartość Członkowskich danych; w takim przypadku zmiana go od:

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

Do:

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

Zobacz też

Koncepcje

Zestaw rekordów (ODBC)

Zestaw rekordów: Jak zestawy rekordów wybierz rekordy (ODBC)