Bentuk Klausul KOMPUTASI
Klausa COMPUTE bentuk menghasilkan Recordset induk, yang kolomnya terdiri dari referensi ke Recordset turunan; kolom opsional yang isinya adalah bab, kolom baru, atau terhitung, atau hasil menjalankan fungsi agregat pada Recordset turunan atau Recordset berbentuk sebelumnya; dan kolom apa pun dari Recordset turunan yang tercantum dalam klausa BY opsional.
Sintaks
SHAPE child-command [AS] child-alias
COMPUTE child-alias [[AS] name], [appended-column-list]
[BY grp-field-list]
Deskripsi
Bagian dari klausul ini adalah sebagai berikut:
perintah anak
Terdiri dari salah satu hal berikut ini:
Perintah kueri dalam kurung kurawal ("{}") yang mengembalikan objek Recordset turunan. Perintah dikeluarkan untuk penyedia data yang mendasar, dan sintaksnya tergantung pada persyaratan penyedia tersebut. Ini biasanya akan menjadi bahasa SQL, meskipun ADO tidak memerlukan bahasa kueri tertentu.
Nama Recordset berbentuk yang sudah ada.
Perintah bentuk lain.
Kata kunci TABLE, diikuti dengan nama tabel di penyedia data.
alias anak
Alias yang digunakan untuk merujuk ke Recordset yang dikembalikan oleh perintah turunan.Alias anak diperlukan dalam daftar kolom dalam klausa COMPUTE dan menentukan hubungan antara objek Recordset induk dan anak.
daftar kolom yang ditambahkan
Daftar di mana setiap elemen menentukan kolom di induk yang dihasilkan. Setiap elemen berisi kolom bab, kolom baru, kolom terhitung, atau nilai yang dihasilkan dari fungsi agregat pada Recordset anak.
grp-field-list
Daftar kolom di objek Recordset induk dan turunan yang menentukan bagaimana baris harus dikelompokkan dalam anak.
Untuk setiap kolom dalam grp-field-list, ada kolom terkait di objek Recordset turunan dan induk. Untuk setiap baris dalam Recordset induk, kolom grp-field-list memiliki nilai unik, dan Recordset turunan yang direferensikan oleh baris induk hanya terdiri dari baris turunan yang kolom daftar bidang grp memiliki nilai yang sama dengan baris induk.
Jika klausa BY disertakan, baris Recordset turunan akan dikelompokkan berdasarkan kolom dalam klausa COMPUTE. Recordset induk akan berisi satu baris untuk setiap grup baris dalam Recordset turunan.
Jika klausa BY dihilangkan, seluruh Recordset turunan diperlakukan sebagai grup tunggal dan Recordset induk akan berisi tepat satu baris. Baris tersebut akan mereferensikan seluruh Recordset turunan. Menghilangkan klausa BY memungkinkan Anda menghitung agregat "total keseluruhan" di seluruh Recordset anak.
Contohnya:
SHAPE {select * from Orders} AS orders COMPUTE orders, SUM(orders.OrderAmount) as TotalSales
Terlepas dari cara mana Recordset induk terbentuk (menggunakan COMPUTE atau menggunakan APPEND), itu akan berisi kolom bab yang digunakan untuk menghubungkannya dengan Recordset turunan. Jika mau, Recordset induk juga dapat berisi kolom yang berisi agregat (SUM, MIN, MAX, dan sebagainya) di atas baris turunan. Recordset induk dan anak mungkin berisi kolom yang berisi ekspresi pada baris di Recordset, serta kolom yang baru dan awalnya kosong.
Operasi
Perintah turunan dikeluarkan untuk penyedia, yang mengembalikan Recordset turunan.
Klausa COMPUTE menentukan kolom Recordset induk, yang mungkin merupakan referensi ke Recordset turunan, satu atau beberapa agregat, ekspresi terhitung, atau kolom baru. Jika ada klausa BY, kolom yang ditentukannya juga ditambahkan ke Recordset induk. Klausa BY menentukan bagaimana baris Recordset turunan dikelompokkan.
Misalnya, asumsikan Anda memiliki tabel, bernama Demografi, yang terdiri dari bidang Negara Bagian, Kota, dan Populasi. (Angka populasi dalam tabel disediakan hanya sebagai contoh).
Provinsi | Kota | Populasi |
---|---|---|
WA | Seattle | 700,000 |
ATAU | Medford | 200.000 |
ATAU | Portland | 400.000 |
OS | Los Angeles | 800.000 |
OS | San Diego | 600.000 |
WA | Tacoma | 500,000 |
ATAU | Corvallis | 300.000 |
Sekarang, terbitkan perintah bentuk ini:
rst.Open "SHAPE {select * from demographics} AS rs " & _
"COMPUTE rs, SUM(rs.population) BY state", _
objConnection
Perintah ini membuka Recordset berbentuk dengan dua tingkat. Tingkat induk adalah Recordset yang dihasilkan dengan kolom agregat (SUM(rs.population)
), kolom yang mereferensikan Recordset turunan (rs
), dan kolom untuk mengelompokkan Recordset turunan (state
). Tingkat anak adalah Recordset yang dikembalikan oleh perintah kueri (select * from demographics
).
Baris detail Recordset turunan akan dikelompokkan menurut status, tetapi jika tidak dalam urutan tertentu. Artinya, grup tidak akan berada dalam urutan alfabet atau numerik. Jika Anda ingin Recordset induk diurutkan, Anda bisa menggunakan metode Pengurutan Recordset untuk mengurutkanRecordset induk.
Sekarang Anda dapat menavigasi Recordset induk yang dibuka dan mengakses objek Recordset detail turunan. Untuk informasi selengkapnya, lihat Mengakses Baris dalam Kumpulan Rekaman Hierarkis.
Kumpulan Catatan Detail Induk dan Anak yang Dihasilkan
Parent
SUM (rs. Populasi) | rs | Provinsi |
---|---|---|
1,300,000 | Referensi ke anak1 | OS |
1.200.000 | Referensi ke child2 | WA |
1,100,000 | Referensi ke child3 | ATAU |
Anak1
Provinsi | Kota | Populasi |
---|---|---|
OS | Los Angeles | 800.000 |
OS | San Diego | 600.000 |
Anak2
Provinsi | Kota | Populasi |
---|---|---|
WA | Seattle | 700,000 |
WA | Tacoma | 500.000 |
Anak3
Provinsi | Kota | Populasi |
---|---|---|
ATAU | Medford | 200.000 |
ATAU | Portland | 400.000 |
ATAU | Corvallis | 300.000 |
Lihat juga
Mengakses Baris dalam Perangkat Rekam Hierarkis
Gambaran Umum Pembentukan Data
Objek Bidang
Tata Bahasa Bentuk Formal
Objek Recordset (ADO)
Penyedia yang Diperlukan untuk Pembentukan Data
Bentuk Klausul Lampiran
Bentuk Perintah Secara Umum
Properti Nilai (ADO)
Visual Basic untuk Fungsi Aplikasi
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk