Minggu, 04 Oktober 2015

[belajar-excel] Digest Number 3587

3 Messages

Digest #3587
2a
Re: Dimana Sintax Errornya by "Mr. Kid" nmkid.family@ymail.com

Messages

Sat Oct 3, 2015 5:14 pm (PDT) . Posted by:

"hendrik karnadi" hendrikkarnadi

Mr. Kid,Mau nanya sedikit lagi tentang penulisan datatype string di Macro.
Masih dengan contoh kasus yang sama, untuk merekap Debits dan Kredits.Bagaimana penulisan macronya bila yang ingin ditampilkan adalah details dari Account tertentu ?Saya coba seperti ini (dengan dua apostroph mengapit Account yang menjadi Criteria),sSQL = sSQL & "Select Account, Description, Debit, Credit From " & oLr.Range(1) & vbCr & "WHERE Account = ""240"""

Tapi ketika dijalankan ada error mesaage "No Value given for one or more required parameters"
Untuk lebih jelasnya saya lampirkan kembali .zip filenya (Consolidate(Detail_ERR) beserta file2 sumbernya), yang macronya telah saya ubah seperti di atas.Mohon dapat diberikan petunjuk lebih lanjut.
Terima kasih.
Salam,HK

----- Forwarded Message -----
From: "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com>
To: BeExcel <belajar-excel@yahoogroups.com>
Sent: Thursday, 1 October 2015, 11:19
Subject: Re: [belajar-excel] Perintah SQL untuk menggabungkan data sekaligus menjumlahkan

  loh...

kan tentang datatype string ada disini. Mulai dari cara penyimpanan data teks (string) ke sebuah variabel, menggabungkan (concatenate) banyak data teks (string), menggabungkan (concatenate) variabel bertipe string dengan suatu data teks, dan berbagai contoh lainnya. Termasuk untuk datatype lainnya.

sedangkan untuk penambahan Description, adalah sekedar mengikuti logika.

Coba deh dibayangkan, ada data produk dan tahun pembuatannya, beserta nilai penjualannya.
Produk      Th_Prod        Nilai
A                1990           100
A                1990           500
A                2000           300
B                1990           250
B                2015           350
B                2015           150
C                2014             30
C                2014             10

1. Bagaimana hasil total nilai per produk ?
2. Bagaimana hasil total nilai per tahun pembuatan ?
3. Bagaimana hasil total nilai per produk per tahun pembuatan ?
4. Coba buat tabel outputnya secara manual, apa beda dari ke-3 output di atas ?

5. Bisakah menampilkan total nilai per produk soal nomor 1 di atas tapi disertai informasi tahun pembuatannya yang per record output nomor 1 hanya memuat 1 nilai tahun pembuatan tertentu ?

6. Kenapa pada kasus Anda ditambahkan Description ?

dari alur logika di atas, maka muncullah struktur query group by yang dengan tegas menyatakan bahwa bagian group by diisi dengan your_key_columns_without_columns_aliasses dan bukan your_tables_or_views_keys

Regard,
Kid

2015-10-01 11:02 GMT+07:00 hendrik karnadi hendrikkarnadi@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>:

  Terima kasih Mr. Kid.
Berhasil....Jadi harus ada tambahan tanda &, ""(string) dan Description (untuk grupnya).
Salam.
HK
From: "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com>
To: BeExcel <belajar-excel@yahoogroups.com>
Sent: Thursday, 1 October 2015, 10:42
Subject: Re: [belajar-excel] Perintah SQL untuk menggabungkan data sekaligus menjumlahkan

  Pak HK,

sSQL = sSQL & "Select Account, Description, Sum(Debits) as Total_Debit, Sum(Credits) as Total_Credit From " & oLr.Range(1) & vbCr & "GROUP BY Account,Description"
Regard,
Kid

2015-10-01 10:11 GMT+07:00 hendrik karnadi hendrikkarnadi@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>:

  Mr. Kid,
Terima kasih atas penjelasannya.
Saya coba ganti perintah :sSQL = sSQL & "Select * From " & oLr.Range(1)

dengan
sSQL = sSQL & "Select Account, Description, Sum(Debits) as Total_Debit, Sum(Credits) as Total_Credit From " & oLr.Range(1) & vbCrGROUP BY Account
Ketika macro dijalankan keluar message "Syntax Error" pada huruf yang berwarna merah. Dimana salahnya ya ?
Terima kasih.
Salam,HK

From: "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com>
To: BeExcel <belajar-excel@yahoogroups.com>
Sent: Thursday, 1 October 2015, 8:58
Subject: Re: [belajar-excel] Perintah SQL untuk menggabungkan data sekaligus menjumlahkan

  Hai Pak HK,

1. Query dasar agregat yang memiliki keys (agregat per anything) tanpa filter terhadap hasil agregat
SELECT your_key_columns, your_aggregat_ecpression
FROM your_source
GROUP BY your_key_columns_without_columns_aliasses

contoh : total penjualan per tahun (berdasar tanggal invoice) per produk
SELECT  produk_id, year(tgl_invoice) as tahun, sum(penjualan) as total_jual
FROM dataINV
GROUP BY produk_id, year(tgl_invoice)          --> tanpa aliasses

2. Query dasar UNION [ALL]
Query1
UNION [ALL]
Query2
UNION [ALL]
.
.
UNION [ALL]
QueryN

dengan setiap Query# berupa select query yang memiliki susunan sesuai kebutuhan.
Urutan kolom dan tipe datanya dari setiap Query# adalah tetap, dengan definisi kolom di Query1 yang menjadi nama kolom output

3. Susunan select query dasar
SELECT your_columns [, your_aggregate_expressions]
FROM your_source
[
    [JOIN your_join1 ON your_join1_relations]
    .
    .
    [JOIN your_joinN ON your_joinN_relations]
]
[
    WHERE your_filter_expressions
]
[
    GROUP BY your_columns_except_aggregate_expressions_without_columns_aliasses
    [HAVING your_aggregate_filter_expressions]     --> berisi filter terhadap kolom-kolom agregat, dan bukan terhadap key columns
]

[
     UNION [ALL]
     your_another_query2
     .
     .
     UNION [ALL]
     your_another_queryN
]
[
    ORDER BY your_sort_expressions
]

gunakan klausa ORDER BY secara bijak dan usahakan dihindari kecuali penting sekali diseakhir mungkin suatu proses, karena klausa ORDER BY termasuk computer resources eater

4. source dari query lain (subquery di bagian FROM)
SELECT your_dataset_alias#.your_columns
FROM
     (
         queryS
     ) as your_dataset_alias1
[another query clauses]

queryS bisa berisi select query dasar seperti di-nomor 3 tanpa klausa ORDER BY
subquery suatu query seperti queryS juga bisa diletakkan pada bagian sumber data yang di-JOIN
setiap Query# dalam UNION [ALL] bisa berisi subquery suatu query seperti queryS

-----------------------
Prinsip dasar ber-query :
1. ketahui sumber data yang akan diproses
2. pahami alur komputasi yang dibutuhkan
3. susun query berdasar 1 dan 2
-----------------------

Jadi, menggabungkan data hasil agregat adalah hal yang berbeda dengan mengagregat hasil gabungan data
> menggabungkan data hasil agregat
SELECT your_key_columns, your_aggregate_expressions
FROM your_source1
GROUP BY your_key_columns_without_columns_aliasses

UNION [ALL]
SELECT your_key_columns, your_aggregate_expressions
FROM your_source2
GROUP BY your_key_columns_without_columns_aliasses
.
.
UNION [ALL]
SELECT your_key_columns, your_aggregate_expressions
FROM your_sourceN
GROUP BY your_key_columns_without_columns_aliasses

hasilnya bisa jadi ada your_columns yang sama dengan nilai your_aggregate apa saja jika dengan [ALL] atau ada hasil aggregate yang hilang jika tanpa [ALL]

> mengagregat hasil gabungan dataSELECT your_key_columns, your_aggregate_expressionsFROM
       (

SELECT your_key_columns
FROM your_source1

UNION [ALL]
SELECT your_key_columns
FROM your_source2
.
.
UNION [ALL]
SELECT your_key_columns
FROM your_sourceN

        ) as your_dataset_alias
GROUP BY your_key_columns_without_columns_aliasses
Regard,
Kid

On Wed, Sep 30, 2015 at 5:36 PM, hendrik karnadi hendrikkarnadi@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com> wrote:

  Dear Be-Excelers,
Berikut adalah perintah Macro yang saya dapat dari internet (file terlampir) untuk menggabungkan data (non unique) dari beberapa file yang ada dalam satu folder (Path),
Sub Consolidate()
    Dim sSQL As String      'SQL String    Dim oLr  As ListRow     'Worksheets Row    Dim cn   As Object      'Connection    Dim rs   As Object      'Recordset
'   Create SQL    For Each oLr In Sheet1.ListObjects("Worksheets").ListRows        If sSQL <> "" Then sSQL = sSQL & vbCr & "Union All" & vbCr 'tidak unik        sSQL = sSQL & "Select * From " & oLr.Range(1)    Next    sSQL = Replace(sSQL, "<Path>", ThisWorkbook.Path)    '   Create Connection Objects    Set cn = CreateObject("ADODB.Connection")    Set rs = CreateObject("ADODB.Recordset")
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _            "Data Source=" & ThisWorkbook.FullName & ";" & _            "Extended Properties=""Excel 12.0 Xml;HDR=YES"";"    rs.Open sSQL, cn    Debug.Print sSQL
    If Sheet1.ListObjects.Count > 1 Then Sheet1.ListObjects(2).Delete    Sheet1.ListObjects.Add( _        SourceType:=xlSrcQuery, _        Source:=rs, _        Destination:=Sheet1.Range("C6")).QueryTable.Refresh
    rs.Close    cn.Close
    Set rs = Nothing    Set cn = Nothing
End Sub
Yang ingin saya tanyakan adalah bagaimana bunyi perintah SQL nya (warna biru) jika yang ingin ditampilkan adalah total per no rek (bukan detailnya).
Terima kasih.
Salam,HK


#yiv5762845329 #yiv5762845329 -- #yiv5762845329ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv5762845329 #yiv5762845329ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv5762845329 #yiv5762845329ygrp-mkp #yiv5762845329hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv5762845329 #yiv5762845329ygrp-mkp #yiv5762845329ads {margin-bottom:10px;}#yiv5762845329 #yiv5762845329ygrp-mkp .yiv5762845329ad {padding:0 0;}#yiv5762845329 #yiv5762845329ygrp-mkp .yiv5762845329ad p {margin:0;}#yiv5762845329 #yiv5762845329ygrp-mkp .yiv5762845329ad a {color:#0000ff;text-decoration:none;}#yiv5762845329 #yiv5762845329ygrp-sponsor #yiv5762845329ygrp-lc {font-family:Arial;}#yiv5762845329 #yiv5762845329ygrp-sponsor #yiv5762845329ygrp-lc #yiv5762845329hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv5762845329 #yiv5762845329ygrp-sponsor #yiv5762845329ygrp-lc .yiv5762845329ad {margin-bottom:10px;padding:0 0;}#yiv5762845329 #yiv5762845329actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv5762845329 #yiv5762845329activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv5762845329 #yiv5762845329activity span {font-weight:700;}#yiv5762845329 #yiv5762845329activity span:first-child {text-transform:uppercase;}#yiv5762845329 #yiv5762845329activity span a {color:#5085b6;text-decoration:none;}#yiv5762845329 #yiv5762845329activity span span {color:#ff7900;}#yiv5762845329 #yiv5762845329activity span .yiv5762845329underline {text-decoration:underline;}#yiv5762845329 .yiv5762845329attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv5762845329 .yiv5762845329attach div a {text-decoration:none;}#yiv5762845329 .yiv5762845329attach img {border:none;padding-right:5px;}#yiv5762845329 .yiv5762845329attach label {display:block;margin-bottom:5px;}#yiv5762845329 .yiv5762845329attach label a {text-decoration:none;}#yiv5762845329 blockquote {margin:0 0 0 4px;}#yiv5762845329 .yiv5762845329bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv5762845329 .yiv5762845329bold a {text-decoration:none;}#yiv5762845329 dd.yiv5762845329last p a {font-family:Verdana;font-weight:700;}#yiv5762845329 dd.yiv5762845329last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv5762845329 dd.yiv5762845329last p span.yiv5762845329yshortcuts {margin-right:0;}#yiv5762845329 div.yiv5762845329attach-table div div a {text-decoration:none;}#yiv5762845329 div.yiv5762845329attach-table {width:400px;}#yiv5762845329 div.yiv5762845329file-title a, #yiv5762845329 div.yiv5762845329file-title a:active, #yiv5762845329 div.yiv5762845329file-title a:hover, #yiv5762845329 div.yiv5762845329file-title a:visited {text-decoration:none;}#yiv5762845329 div.yiv5762845329photo-title a, #yiv5762845329 div.yiv5762845329photo-title a:active, #yiv5762845329 div.yiv5762845329photo-title a:hover, #yiv5762845329 div.yiv5762845329photo-title a:visited {text-decoration:none;}#yiv5762845329 div#yiv5762845329ygrp-mlmsg #yiv5762845329ygrp-msg p a span.yiv5762845329yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv5762845329 .yiv5762845329green {color:#628c2a;}#yiv5762845329 .yiv5762845329MsoNormal {margin:0 0 0 0;}#yiv5762845329 o {font-size:0;}#yiv5762845329 #yiv5762845329photos div {float:left;width:72px;}#yiv5762845329 #yiv5762845329photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv5762845329 #yiv5762845329photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv5762845329 #yiv5762845329reco-category {font-size:77%;}#yiv5762845329 #yiv5762845329reco-desc {font-size:77%;}#yiv5762845329 .yiv5762845329replbq {margin:4px;}#yiv5762845329 #yiv5762845329ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv5762845329 #yiv5762845329ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv5762845329 #yiv5762845329ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv5762845329 #yiv5762845329ygrp-mlmsg select, #yiv5762845329 input, #yiv5762845329 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv5762845329 #yiv5762845329ygrp-mlmsg pre, #yiv5762845329 code {font:115% monospace;}#yiv5762845329 #yiv5762845329ygrp-mlmsg * {line-height:1.22em;}#yiv5762845329 #yiv5762845329ygrp-mlmsg #yiv5762845329logo {padding-bottom:10px;}#yiv5762845329 #yiv5762845329ygrp-msg p a {font-family:Verdana;}#yiv5762845329 #yiv5762845329ygrp-msg p#yiv5762845329attach-count span {color:#1E66AE;font-weight:700;}#yiv5762845329 #yiv5762845329ygrp-reco #yiv5762845329reco-head {color:#ff7900;font-weight:700;}#yiv5762845329 #yiv5762845329ygrp-reco {margin-bottom:20px;padding:0px;}#yiv5762845329 #yiv5762845329ygrp-sponsor #yiv5762845329ov li a {font-size:130%;text-decoration:none;}#yiv5762845329 #yiv5762845329ygrp-sponsor #yiv5762845329ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv5762845329 #yiv5762845329ygrp-sponsor #yiv5762845329ov ul {margin:0;padding:0 0 0 8px;}#yiv5762845329 #yiv5762845329ygrp-text {font-family:Georgia;}#yiv5762845329 #yiv5762845329ygrp-text p {margin:0 0 1em 0;}#yiv5762845329 #yiv5762845329ygrp-text tt {font-size:120%;}#yiv5762845329 #yiv5762845329ygrp-vital ul li:last-child {border-right:none !important;}#yiv5762845329

Sun Oct 4, 2015 2:06 am (PDT) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Pak HK,

Error description berbunyi *No Value given for one or more required
parameters*
biasanya karena ada nama kolom yang disebut di bagian select dalam query
yang tidak dapat ditemukan dan dianggap sebagai sebuah variabel tertentu
yang akan diberi suatu nilai konstanta.

Coba periksa kembali nama-nama kolom bagian select dan cocokkan dengan
dataset sumbernya.

Regard,
Kid

2015-10-04 7:14 GMT+07:00 hendrik karnadi hendrikkarnadi@yahoo.com
[belajar-excel] <belajar-excel@yahoogroups.com>:

>
>
> Mr. Kid,
> Mau nanya sedikit lagi tentang *penulisan datatype string* di Macro.
>
> Masih dengan contoh kasus yang sama, untuk merekap Debits dan Kredits.
> Bagaimana penulisan macronya bila yang ingin ditampilkan adalah details
> dari Account tertentu ?
> Saya coba seperti ini (dengan dua apostroph mengapit Account yang menjadi
> Criteria),
> *sSQL = sSQL & "Select Account, Description, Debit, Credit From " &
> oLr.Range(1) & vbCr & "WHERE Account = ""240"""*
>
> Tapi ketika dijalankan ada error mesaage "*No Value given for one or more
> required parameters*"
>
> Untuk lebih jelasnya saya lampirkan kembali .zip filenya (
> *Consolidate(Detail_ERR*) beserta file2 sumbernya), yang *macronya telah
> saya ubah seperti di atas*.
> Mohon dapat diberikan petunjuk lebih lanjut.
>
> Terima kasih.
>
> Salam,
> HK
>
>
>
> ----- Forwarded Message -----
> *From:* "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <
> belajar-excel@yahoogroups.com>
> *To:* BeExcel <belajar-excel@yahoogroups.com>
> *Sent:* Thursday, 1 October 2015, 11:19
> *Subject:* Re: [belajar-excel] Perintah SQL untuk menggabungkan data
> sekaligus menjumlahkan
>
>
> loh...
>
> kan tentang datatype string ada disini
> <http://b-excel.blogspot.co.id/2013/07/belajarvba-004-tipe-data-variabel.html>.
> Mulai dari cara penyimpanan data teks (string) ke sebuah variabel,
> menggabungkan (concatenate) banyak data teks (string), menggabungkan
> (concatenate) variabel bertipe string dengan suatu data teks, dan berbagai
> contoh lainnya. Termasuk untuk datatype lainnya.
>
> sedangkan untuk penambahan Description, adalah sekedar mengikuti logika.
>
> Coba deh dibayangkan, ada data produk dan tahun pembuatannya, beserta
> nilai penjualannya.
> Produk Th_Prod Nilai
> A 1990 100
> A 1990 500
> A 2000 300
> B 1990 250
> B 2015 350
> B 2015 150
> C 2014 30
> C 2014 10
>
> 1. Bagaimana hasil total nilai per produk ?
> 2. Bagaimana hasil total nilai per tahun pembuatan ?
> 3. Bagaimana hasil total nilai per produk per tahun pembuatan ?
> 4. Coba buat tabel outputnya secara manual, apa beda dari ke-3 output di
> atas ?
>
> 5. Bisakah menampilkan total nilai per produk soal nomor 1 di atas tapi
> disertai informasi tahun pembuatannya yang per record output nomor 1 hanya
> memuat 1 nilai tahun pembuatan tertentu ?
>
> 6. Kenapa pada kasus Anda ditambahkan Description ?
>
> dari alur logika di atas, maka muncullah struktur query group by yang
> dengan tegas menyatakan bahwa bagian group by diisi dengan your_
> *key_columns*_without_columns_aliasses dan *bukan*
> your_tables_or_views_keys
>
> Regard,
> Kid
>
>
>
> 2015-10-01 11:02 GMT+07:00 hendrik karnadi hendrikkarnadi@yahoo.com
> [belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
>
> Terima kasih Mr. Kid.
>
> Berhasil....
> Jadi harus ada tambahan tanda &, ""(string) dan Description (untuk
> grupnya).
>
> Salam.
> HK
>
> ------------------------------
> *From:* "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <
> belajar-excel@yahoogroups.com>
> *To:* BeExcel <belajar-excel@yahoogroups.com>
> *Sent:* Thursday, 1 October 2015, 10:42
>
> *Subject:* Re: [belajar-excel] Perintah SQL untuk menggabungkan data
> sekaligus menjumlahkan
>
>
> Pak HK,
>
> *sSQL = sSQL & "Select Account, Description, Sum(Debits) as Total_Debit,
> Sum(Credits) as Total_Credit From " & oLr.Range(1) & vbCr & "GROUP BY
> Account,Description"*
>
> Regard,
> Kid
>
>
>
> 2015-10-01 10:11 GMT+07:00 hendrik karnadi hendrikkarnadi@yahoo.com
> [belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
>
> Mr. Kid,
>
> Terima kasih atas penjelasannya.
>
> Saya coba ganti perintah :
> *sSQL = sSQL & "Select * From " & oLr.Range(1)*
>
> dengan
>
> *sSQL = sSQL & "Select Account, Description, Sum(Debits) as Total_Debit,
> Sum(Credits) as Total_Credit From " & oLr.Range(1) & vbCr*
> *GROUP BY Account*
>
> Ketika macro dijalankan keluar message "Syntax Error" pada huruf yang
> berwarna merah. Dimana salahnya ya ?
>
> Terima kasih.
>
> Salam,
> HK
>
>
> ------------------------------
> *From:* "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <
> belajar-excel@yahoogroups.com>
> *To:* BeExcel <belajar-excel@yahoogroups.com>
> *Sent:* Thursday, 1 October 2015, 8:58
> *Subject:* Re: [belajar-excel] Perintah SQL untuk menggabungkan data
> sekaligus menjumlahkan
>
>
> Hai Pak HK,
>
> 1. Query dasar agregat yang memiliki keys (agregat per anything) tanpa
> filter terhadap hasil agregat
> SELECT your_key_columns, your_aggregat_ecpression
> FROM your_source
> GROUP BY your_key_columns_without_columns_aliasses
>
> contoh : total penjualan per tahun (berdasar tanggal invoice) per produk
> SELECT produk_id, year(tgl_invoice) as tahun, sum(penjualan) as total_jual
> FROM dataINV
> GROUP BY produk_id, year(tgl_invoice) --> tanpa aliasses
>
> 2. Query dasar UNION [ALL]
> Query1
> UNION [ALL]
> Query2
> UNION [ALL]
> .
> .
> UNION [ALL]
> QueryN
>
> dengan setiap Query# berupa select query yang memiliki susunan sesuai
> kebutuhan.
> Urutan kolom dan *tipe datanya *dari setiap Query# adalah tetap, dengan
> definisi kolom di Query1 yang menjadi nama kolom output
>
> 3. Susunan select query dasar
> SELECT your_columns [, your_aggregate_expressions]
> FROM your_source
> [
> [JOIN your_join1 ON your_join1_relations]
> .
> .
> [JOIN your_joinN ON your_joinN_relations]
> ]
> [
> WHERE your_filter_expressions
> ]
> [
> GROUP BY
> your_columns_except_aggregate_expressions_without_columns_aliasses
> [HAVING your_aggregate_filter_expressions] --> berisi filter
> terhadap kolom-kolom agregat, dan bukan terhadap key columns
> ]
>
> [
> UNION [ALL]
> your_another_query2
> .
> .
> UNION [ALL]
> your_another_queryN
> ]
> [
> ORDER BY your_sort_expressions
> ]
>
> gunakan klausa ORDER BY secara bijak dan usahakan dihindari kecuali
> penting sekali diseakhir mungkin suatu proses, karena klausa ORDER BY
> termasuk computer resources eater
>
> 4. source dari query lain (subquery di bagian FROM)
> SELECT your_dataset_alias#.your_columns
> FROM
> (
> queryS
> ) as your_dataset_alias1
> [another query clauses]
>
> queryS bisa berisi select query dasar seperti di-nomor 3 tanpa klausa
> ORDER BY
> subquery suatu query seperti queryS juga bisa diletakkan pada bagian
> sumber data yang di-JOIN
> setiap Query# dalam UNION [ALL] bisa berisi subquery suatu query seperti
> queryS
>
> -----------------------
> Prinsip dasar ber-query :
> 1. ketahui sumber data yang akan diproses
> 2. pahami alur komputasi yang dibutuhkan
> 3. susun query berdasar 1 dan 2
> -----------------------
>
> Jadi, *menggabungkan data hasil agregat* adalah hal yang berbeda dengan *mengagregat
> hasil gabungan data*
> > *menggabungkan data hasil agregat *
> SELECT your_key_columns, your_aggregate_expressions
> FROM your_source1
> GROUP BY your_key_columns_without_columns_aliasses
>
> UNION [ALL]
> SELECT your_key_columns, your_aggregate_expressions
> FROM your_source2
> GROUP BY your_key_columns_without_columns_aliasses
> .
> .
> UNION [ALL]
> SELECT your_key_columns, your_aggregate_expressions
> FROM your_sourceN
> GROUP BY your_key_columns_without_columns_aliasses
>
> hasilnya bisa jadi ada your_columns yang sama dengan nilai your_aggregate
> apa saja jika dengan [ALL] atau ada hasil aggregate yang hilang jika tanpa
> [ALL]
>
> > *mengagregat hasil gabungan data*
> SELECT your_key_columns, your_aggregate_expressions
> FROM
> (
>
> SELECT your_key_columns
> FROM your_source1
>
> UNION [ALL]
> SELECT your_key_columns
> FROM your_source2
> .
> .
> UNION [ALL]
> SELECT your_key_columns
> FROM your_sourceN
>
> ) as your_dataset_alias
> GROUP BY your_key_columns_without_columns_aliasses
>
> Regard,
> Kid
>
>
>
>
>
> On Wed, Sep 30, 2015 at 5:36 PM, hendrik karnadi hendrikkarnadi@yahoo.com
> [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
>
>
> Dear Be-Excelers,
>
> Berikut adalah perintah Macro yang saya dapat dari internet (file
> terlampir) untuk menggabungkan data (non unique) dari beberapa file yang
> ada dalam satu folder (Path),
>
> Sub Consolidate()
>
> Dim sSQL As String 'SQL String
> Dim oLr As ListRow 'Worksheets Row
> Dim cn As Object 'Connection
> Dim rs As Object 'Recordset
>
> ' Create SQL
> For Each oLr In Sheet1.ListObjects("Worksheets").ListRows
> If sSQL <> "" Then sSQL = sSQL & vbCr & "Union All" & vbCr 'tidak
> unik
> * sSQL = sSQL & "Select * From " & oLr.Range(1)*
> Next
> sSQL = Replace(sSQL, "<Path>", ThisWorkbook.Path)
>
> ' Create Connection Objects
> Set cn = CreateObject("ADODB.Connection")
> Set rs = CreateObject("ADODB.Recordset")
>
> cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
> "Data Source=" & ThisWorkbook.FullName & ";" & _
> "Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
> rs.Open sSQL, cn
> Debug.Print sSQL
>
> If Sheet1.ListObjects.Count > 1 Then Sheet1.ListObjects(2).Delete
> Sheet1.ListObjects.Add( _
> SourceType:=xlSrcQuery, _
> Source:=rs, _
> Destination:=Sheet1.Range("C6")).QueryTable.Refresh
>
> rs.Close
> cn.Close
>
> Set rs = Nothing
> Set cn = Nothing
>
> End Sub
>
> Yang ingin saya tanyakan adalah bagaimana bunyi perintah SQL nya (warna
> biru) jika yang ingin ditampilkan adalah *total* per no rek (*bukan
> detail*nya).
>
> Terima kasih.
>
> Salam,
> HK
>
>
>
>
>
>
>
>
>
>
>
>

Sun Oct 4, 2015 1:51 am (PDT) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Mungkin kalau di MS Access, wildcard character % (sebarang karakter) adalah
menggunakan karakter *

2015-10-03 11:31 GMT+07:00 Heru Safrudin superheruu@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:

>
>
> Subhanallah....
> Ya seperti ini yang saya maksud dan sudah saya otak-atik tapi belum
> berhasil
>
> Terima kasih Mr...
> Wassalamu 'alaikum wr. wb.,
>
> Heru Safrudin
> Pada 2015 10 2 16:26, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <
> belajar-excel@yahoogroups.com> menulis:
>
>>
>>
>> Alhamdulillah... turut senang.
>>
>> Berhubung SQL adalah bahasa yang Structured (kan SQL = Structured Query
>> Language), maka pengolahan data yang memiliki struktur yang jelas akan
>> relatif mudah. Format yang tetap bisa menjadi kriteria karena terstruktur.
>>
>> Jadi, andaikan bisa ditentukan kriteria identiknya yang berlaku untuk
>> seluruh record di kolom tersebut, maka bisa disusun ekspresinya ataupun
>> adjective-nya.
>> Contho, bila pasti bahwa 3 karakter pertama adalah kunci identik, maka
>> bunyi bagian ON bisa :
>> ON Left(a.GR,3)=Left(b.GR)
>> dan dipastikan bahwa hasil join menghasilkan data unique berdasar
>> kolom-kolom di bagian ON dan pasti 1 record untuk setiap kombinasi
>> kolom-kolom yang ada di bagian ON.
>>
>> Bisa juga ketika polanya adalah bahwa a.GR ada didalam b.GR
>>
>> ON b.GR like '%' + a.gr + '%'
>> atau menggunakan fungsi Instr
>> ON instr(b.gr , a.gr)<>0
>> atau mungkin bisa pakai replace dan sebagainya...
>> banyak sekali yang mungkin dipakai. Dan akhirnya nanti, akan bermuara,
>> bunyi query yang mana yang efisien.
>>
>> Wassalamu'alaikum wr wb,
>> Kid
>>
>>
>> 2015-10-02 16:02 GMT+07:00 Heru Safrudin superheruu@gmail.com
>> [belajar-excel] <belajar-excel@yahoogroups.com>:
>>
>>>
>>>
>>> Alhamdulillah udah sukses Mr.
>>> Ada pertanyaan lagi sbb :
>>>
>>> Contoh di kasus Anda :
>>> UPDATE [\\DATABASE\RM.MDB].REF2 as a
>>> INNER JOIN [\\DATABASE\RM.MDB].GR as b
>>> ON a.GR=b.GR <------ apakah datanya harus identik ??? Bagaimana
>>> penulisannya jika data tidak identik tapi ada sebagian saja data yg
>>> identik, misal a.GR datanya 'ABC1' dan b.GR datanya 'ABC2' dianggap data yg
>>> identik
>>> SET a.HARVEST=b.GR_DATE
>>>
>>> Terima kasih pengetahuannya
>>> Wassalamu 'alaikum wr. wb.,
>>>
>>> Heru Safrudin
>>>
>>> Pada 2015 10 1 14:04, "'Mr. Kid' mr.nmkid@gmail.com
>>> [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
>>> >
>>> >
>>> >
>>> > Wa'alaikumussalam wr wb
>>> >
>>> > Hai Heru,
>>> >
>>> > Syntax umum :
>>> > (digunakan oleh sebagian besar database engine, kecuali MS SQL Server
>>> yang memerlukan pendefinisian klausa FROM)
>>> > UPDATE target as alias_target
>>> > INNER JOIN source as another
>>> > ON alias_target.colskey=another.colskey
>>> > SET alias_target.col1_target = another.col1
>>> >
>>> > Contoh di kasus Anda :
>>> > UPDATE [\\DATABASE\RM.MDB].REF2 as a
>>> > INNER JOIN [\\DATABASE\RM.MDB].GR as b
>>> > ON a.GR=b.GR
>>> > SET a.HARVEST=b.GR_DATE
>>> >
>>> > Jadi, perbedaan dengan yang Anda buat adalah pada struktur bunyi
>>> bahasanya...
>>> >
>>> >
>>> > Wassalamu'alaikum wr wb
>>> > Kid
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > 2015-10-01 12:39 GMT+07:00 Heru Safrudin superheruu@gmail.com
>>> [belajar-excel] <belajar-excel@yahoogroups.com>:
>>> >>
>>> >>
>>> >>
>>> >> Dear master,
>>> >>
>>> >> Saya mau update database mdb file, dari excel dengan syntax sql sbb:
>>> >>
>>> >> "update `\\DATABASE\RM.MDB`.REF2 SET REF2.HARVEST=GR.GR_DATE FROM
>>> `\\DATABASE\RM.MDB`.GR WHERE REF2.GR=GR.GR"
>>> >>
>>> >> Kenapa kok syntex error (missing operator ) in query expression, saya
>>> pingin tahu dimana letak syntax errornya
>>> >> Mohon petunjuknya
>>> >>
>>> >> Terima kasih
>>> >> Wassalamu 'alaikum wr. wb.,
>>> >>
>>> >> Heru Safrudin
>>> >
>>> >
>>> >
>>>
>>>
>>
>
============================================================
Pojok Lowongan Kerja yang disediakan milis :
http://milis-belajar-excel.1048464.n5.nabble.com/Pojok-Lowongan-Kerja-f5725753.html
*** Posting lowongan kerja : ke link tersebut dan klik New Topic
============================================================
bergabung ke milis (subscribe), kirim mail kosong ke: belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke: belajar-excel@yahoogroups.com
berkunjung ke web milis : http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran : http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di : http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe), kirim mail kosong ke : belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------

Tidak ada komentar:

Posting Komentar