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 

  

Kirim email ke