Terima kasih Mr. Kid.
Saya Googling memang kebanyakan mengacu ke SQL Server....saya cuma penasaran
saja apa anda perintah SQL (pengganti) untuk Sub Total.
Memang bikin sub total dengan Pivot lebih praktis, cuma dilihat dari sisi user
"seolah2" 2 kali kerja...yaitu pake SQL dan Pivot.
Sekali lagi terima kasih Mr. Kid.
Salam,HK
From: "'Mr. Kid' [email protected] [belajar-excel]"
<[email protected]>
To: BeExcel <[email protected]>
Sent: Thursday, 12 November 2015, 15:45
Subject: Re: [belajar-excel] SQL untuk menjumlahkan (membuat Sub Total) di
Excel
Pak HK,
Excel mengkoneksi ke Excel dengan data provider ACE OLEDB (semua versi Excel)
atau JET 4 OLEDB (xl2003 ke bawah) yang native-nya digunakan untuk koneksi ke
MS Access. Jadi bisa dikatakan bahwa akses ke Excel seperti mengakses ke MS
Access.
Database engine yang besar seperti ORACLE atau MS SQL SERVER memiliki data
provider tersendiri untuk mengkoneksi ke dirinya. Jadi Excel atau MS Access
atau database engine lain yang akan mengkoneksi ke ORACLE harus menggunakan
data provider milik ORACLE. Begitu juga jika ingin mengkoneksi ke MS SQL
SERVER, maka harus menggunakan data provider milik MS SQL SERVER.
Excel tidak bisa mengkoneksi ke Excel menggunakan provider milik MS SQL SERVER
atau ORACLE. Jadi, Excel mengkoneksi ke Excel harus (mau tidak mau) dengan
provider milik MS Access yang bernama ACE OLEDB atau JET 4 OLEDB tergantung
versi Excel-nya.
Varian SQL yang digunakan oleh MS Access adalah yang standar. Sedangkan yang
digunakan oleh database engine lain bisa jadi lebih kaya variasinya, sehingga
memiliki banyak query clause. Contohnya klausa Grouping Sets yang tidak ada di
MS Access, tetapi ada di MS SQL SERVER.
Jadi, tidak memungkinkan menggunakan klausa Grouping Sets ketika melakukan
koneksi memanfaatkan data provider ACE OLEDB yang milik MS Access karena MS
Access tidak punya klausa tersebut.
Sebenarnya, fitur Excel Pivot Table bisa menampilkan subtotal tanpa harus
membentuk query subtotal. Bahkan mulai xl2010 pun sudah ditambahkan fitur Excel
Pivot Table yang mampu menampilkan nilai yang berulang dalam satu grup data,
sehingga bisa menjadi tabel bantu pembentuk tabel hasil yang baik.
Sampai saat ini, saya sering bingung dengan query yang berisi pembentukan nilai
subtotal ataupun baris total. Karena dengan membuat query yang menampilkan
nilai total atau subtotal bersama dengan dataset hasil, maka kelebihan query
menjadi kurang greget diakibatkan lamanya proses. Coba perhatikan query yang
Anda buat. Disana, proses yang terjadi adalah 4 tahap, yaitu mulai mengambil
data untuk langsung jadi output, mengambil data lalu melakukan agregat,
menggabungkan hasil 2 query tersebut dengan union all, lalu proses sort dengan
order by.
Ketika penyusunan bentuk hasil akhir diserahkan kepada sisi front end (dalam
hal ini Excel, seperti melalui fitur Pivot Table), maka hanya ada 1 proses
sederhana saja, yaitu mengambil data.
btw,
semua itu sekedar wawasan saja. belum tentu benar adanya secara kasat mata.
Regards,
Kid
2015-11-12 11:37 GMT+07:00 hendrik karnadi [email protected]
[belajar-excel] <[email protected]>:
Dear Be-Exceler,
Perintah SQL akan sangat bermanfaat untuk mengolah data Excel dalam jumlah
besar, namun sepertinya tidak semua perintah SQL dapat dijalankan di Excel.
Di bawah ini adalah data dan SQL yang saya dapat dari internet...
Datanya (tabel PENJUALAN) adalah sbb:
| CUS_ID | PRODUCT | AMOUNT |
| 12 | A | 2.5 |
| 12 | B | 5.8 |
| 24 | A | 10 |
| 24 | B | 30 |
SQLnya sbb:
| SELECT cus_id, product, amount FROM PENJUALAN | | | | |
| UNION ALL | | | | |
| (SELECT cus_id, 'TOTAL' AS product, SUM(amount) FROM PENJUALAN GROUP BY
cus_id) |
| ORDER BY cus_id, product | | | | | | | |
dan hasil QUERY nya adalah sbb:
| cus_id | product | amount |
| 12 | A | 2.5 |
| 12 | B | 5.8 |
| 12 | TOTAL | 8.3 |
| 24 | A | 10 |
| 24 | B | 30 |
| 24 | TOTAL | 40 |
Contoh di atas menggunakan satu tabel (PENJUALAN) sehingga perintah SQL nya
nampak sederhana dan cukup singkat, namunjika digunakan banyak tabel dan kita
ingin membuat 'Sub TOTAL' tentunya perintah SQL nya akan menjadi panjang,
karena adanya perintah SELECT dan penyebutan Field yang ber-ulang2.
Melalui internet saya juga melihat ada perintah Group by Grouping Sets untuk
mempersingkat perintah SQL nya.
Pertanyaan saya,bagaimanakah penulisan perintah SQL (Group by Grouping Sets)
agar dapat diaplikasikan di Excel melalui Get External Data?
Terlampir adalah file PENJUALAN dan hasil QUERY di atas, yang saya dapat dari
internet.
Semoga ada rekan pemerhati SQL yang bersedia meluangkan waktunya..Terima kasih.
Salam,HK
#yiv0475456269 #yiv0475456269 -- #yiv0475456269ygrp-mkp {border:1px solid
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv0475456269
#yiv0475456269ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv0475456269
#yiv0475456269ygrp-mkp #yiv0475456269hd
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px
0;}#yiv0475456269 #yiv0475456269ygrp-mkp #yiv0475456269ads
{margin-bottom:10px;}#yiv0475456269 #yiv0475456269ygrp-mkp .yiv0475456269ad
{padding:0 0;}#yiv0475456269 #yiv0475456269ygrp-mkp .yiv0475456269ad p
{margin:0;}#yiv0475456269 #yiv0475456269ygrp-mkp .yiv0475456269ad a
{color:#0000ff;text-decoration:none;}#yiv0475456269 #yiv0475456269ygrp-sponsor
#yiv0475456269ygrp-lc {font-family:Arial;}#yiv0475456269
#yiv0475456269ygrp-sponsor #yiv0475456269ygrp-lc #yiv0475456269hd {margin:10px
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv0475456269
#yiv0475456269ygrp-sponsor #yiv0475456269ygrp-lc .yiv0475456269ad
{margin-bottom:10px;padding:0 0;}#yiv0475456269 #yiv0475456269actions
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv0475456269
#yiv0475456269activity
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv0475456269
#yiv0475456269activity span {font-weight:700;}#yiv0475456269
#yiv0475456269activity span:first-child
{text-transform:uppercase;}#yiv0475456269 #yiv0475456269activity span a
{color:#5085b6;text-decoration:none;}#yiv0475456269 #yiv0475456269activity span
span {color:#ff7900;}#yiv0475456269 #yiv0475456269activity span
.yiv0475456269underline {text-decoration:underline;}#yiv0475456269
.yiv0475456269attach
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px
0;width:400px;}#yiv0475456269 .yiv0475456269attach div a
{text-decoration:none;}#yiv0475456269 .yiv0475456269attach img
{border:none;padding-right:5px;}#yiv0475456269 .yiv0475456269attach label
{display:block;margin-bottom:5px;}#yiv0475456269 .yiv0475456269attach label a
{text-decoration:none;}#yiv0475456269 blockquote {margin:0 0 0
4px;}#yiv0475456269 .yiv0475456269bold
{font-family:Arial;font-size:13px;font-weight:700;}#yiv0475456269
.yiv0475456269bold a {text-decoration:none;}#yiv0475456269 dd.yiv0475456269last
p a {font-family:Verdana;font-weight:700;}#yiv0475456269 dd.yiv0475456269last p
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv0475456269
dd.yiv0475456269last p span.yiv0475456269yshortcuts
{margin-right:0;}#yiv0475456269 div.yiv0475456269attach-table div div a
{text-decoration:none;}#yiv0475456269 div.yiv0475456269attach-table
{width:400px;}#yiv0475456269 div.yiv0475456269file-title a, #yiv0475456269
div.yiv0475456269file-title a:active, #yiv0475456269
div.yiv0475456269file-title a:hover, #yiv0475456269 div.yiv0475456269file-title
a:visited {text-decoration:none;}#yiv0475456269 div.yiv0475456269photo-title a,
#yiv0475456269 div.yiv0475456269photo-title a:active, #yiv0475456269
div.yiv0475456269photo-title a:hover, #yiv0475456269
div.yiv0475456269photo-title a:visited {text-decoration:none;}#yiv0475456269
div#yiv0475456269ygrp-mlmsg #yiv0475456269ygrp-msg p a
span.yiv0475456269yshortcuts
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv0475456269
.yiv0475456269green {color:#628c2a;}#yiv0475456269 .yiv0475456269MsoNormal
{margin:0 0 0 0;}#yiv0475456269 o {font-size:0;}#yiv0475456269
#yiv0475456269photos div {float:left;width:72px;}#yiv0475456269
#yiv0475456269photos div div {border:1px solid
#666666;height:62px;overflow:hidden;width:62px;}#yiv0475456269
#yiv0475456269photos div label
{color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv0475456269
#yiv0475456269reco-category {font-size:77%;}#yiv0475456269
#yiv0475456269reco-desc {font-size:77%;}#yiv0475456269 .yiv0475456269replbq
{margin:4px;}#yiv0475456269 #yiv0475456269ygrp-actbar div a:first-child
{margin-right:2px;padding-right:5px;}#yiv0475456269 #yiv0475456269ygrp-mlmsg
{font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv0475456269
#yiv0475456269ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv0475456269
#yiv0475456269ygrp-mlmsg select, #yiv0475456269 input, #yiv0475456269 textarea
{font:99% Arial, Helvetica, clean, sans-serif;}#yiv0475456269
#yiv0475456269ygrp-mlmsg pre, #yiv0475456269 code {font:115%
monospace;}#yiv0475456269 #yiv0475456269ygrp-mlmsg *
{line-height:1.22em;}#yiv0475456269 #yiv0475456269ygrp-mlmsg #yiv0475456269logo
{padding-bottom:10px;}#yiv0475456269 #yiv0475456269ygrp-msg p a
{font-family:Verdana;}#yiv0475456269 #yiv0475456269ygrp-msg
p#yiv0475456269attach-count span {color:#1E66AE;font-weight:700;}#yiv0475456269
#yiv0475456269ygrp-reco #yiv0475456269reco-head
{color:#ff7900;font-weight:700;}#yiv0475456269 #yiv0475456269ygrp-reco
{margin-bottom:20px;padding:0px;}#yiv0475456269 #yiv0475456269ygrp-sponsor
#yiv0475456269ov li a {font-size:130%;text-decoration:none;}#yiv0475456269
#yiv0475456269ygrp-sponsor #yiv0475456269ov li
{font-size:77%;list-style-type:square;padding:6px 0;}#yiv0475456269
#yiv0475456269ygrp-sponsor #yiv0475456269ov ul {margin:0;padding:0 0 0
8px;}#yiv0475456269 #yiv0475456269ygrp-text
{font-family:Georgia;}#yiv0475456269 #yiv0475456269ygrp-text p {margin:0 0 1em
0;}#yiv0475456269 #yiv0475456269ygrp-text tt {font-size:120%;}#yiv0475456269
#yiv0475456269ygrp-vital ul li:last-child {border-right:none
!important;}#yiv0475456269