Bagikan melalui


Recordset: Mendapatkan SUM dan Hasil Agregat Lainnya (ODBC)

Catatan

Wizard MFC ODBC Consumer tidak tersedia di Visual Studio 2019 dan yang lebih baru. Anda masih dapat membuat konsumen secara manual.

Topik ini berlaku untuk kelas MFC ODBC.

Topik ini menjelaskan cara mendapatkan hasil agregat menggunakan kata kunci SQL berikut:

  • SUM Menghitung total nilai dalam kolom dengan tipe data numerik.

  • MIN Mengekstrak nilai terkecil dalam kolom dengan jenis data numerik.

  • MAX Mengekstrak nilai terbesar dalam kolom dengan jenis data numerik.

  • AVG Menghitung nilai rata-rata semua nilai dalam kolom dengan jenis data numerik.

  • COUNT Menghitung jumlah rekaman dalam kolom dari jenis data apa pun.

Anda menggunakan fungsi SQL ini untuk mendapatkan informasi statistik tentang rekaman di sumber data daripada mengekstrak rekaman dari sumber data. Kumpulan rekaman yang dibuat biasanya terdiri dari satu rekaman (jika semua kolom adalah agregat) yang berisi nilai. (Mungkin ada lebih dari satu rekaman jika Anda menggunakan Klausa GROUP BY .) Nilai ini adalah hasil dari perhitungan atau ekstraksi yang dilakukan oleh fungsi SQL.

Tip

Untuk menambahkan klausa SQL GROUP BY (dan mungkin klausa HAVING) ke pernyataan SQL Anda, tambahkan ke akhir m_strFilter. Contohnya:

m_strFilter = "sales > 10 GROUP BY SALESPERSON_ID";

Anda bisa membatasi jumlah rekaman yang Anda gunakan untuk mendapatkan hasil agregat dengan memfilter dan mengurutkan kolom.

Perhatian

Beberapa operator agregasi mengembalikan jenis data yang berbeda dari kolom yang digabungkan.

  • SUM dan AVG mungkin mengembalikan jenis data yang lebih besar berikutnya (misalnya, memanggil dengan int menghasilkan LONG atau double).

  • COUNT biasanya mengembalikan LONG terlepas dari jenis kolom target.

  • MAX dan MIN mengembalikan jenis data yang sama dengan kolom yang dihitung.

    Misalnya, wizard Tambahkan Kelas dibuat longm_lSales untuk mengakomodasi kolom Penjualan, tetapi Anda perlu mengganti ini dengan double m_dblSumSales anggota data untuk mengakomodasi hasil agregat. Lihat contoh berikut.

Untuk mendapatkan hasil agregat untuk kumpulan rekaman

  1. Buat kumpulan catatan seperti yang dijelaskan dalam Menambahkan Konsumen ODBC MFC yang berisi kolom tempat Anda ingin mendapatkan hasil agregat.

  2. Ubah fungsi DoFieldExchange untuk kumpulan rekaman. Ganti string yang mewakili nama kolom (argumen kedua dari panggilan fungsi RFX ) dengan string yang mewakili fungsi agregasi pada kolom. Misalnya, ganti:

    RFX_Long(pFX, "Sales", m_lSales);
    

    dengan:

    RFX_Double(pFX, "Sum(Sales)", m_dblSumSales)
    
  3. Buka kumpulan rekaman. Hasil operasi agregasi dibiarkan dalam m_dblSumSales.

Catatan

Wizard benar-benar menetapkan nama anggota data tanpa awalan Hungaria. Misalnya, wizard akan menghasilkan m_Sales kolom Penjualan, bukan nama yang m_lSales digunakan sebelumnya untuk ilustrasi.

Jika Anda menggunakan kelas CRecordView untuk melihat data, Anda harus mengubah panggilan fungsi DDX untuk menampilkan nilai anggota data baru; dalam hal ini, mengubahnya dari:

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

Kepada:

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

Baca juga

Recordset (ODBC)
Recordset: Cara Recordset Memilih Rekaman (ODBC)