Ok Luar biasa ......, bukan hanya solusi yang terpecahkan, Logika dan Penjelasannya sangat sangat luar biasa. Terimakasih Teman-teman. Salam Reinhard
________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of M. Aksan Kurdin Sent: Wednesday, August 22, 2007 4:37 PM To: [email protected] Subject: [belajar-access] Re: REKAP HERIZONTAL Arahan bang erwin sudah betul, gunakan cross tab query, karena memang query tersebut di khususkan untuk summary data seperti yang anda inginkan. Query yang anda gunakan sekarang tidak efisien, lambat karena menggunakan fungsi dsum di setiap kolomnya. berikut beberapa variasi query yang bisa anda pelajari: 1) tidak efisien, karena dsum dipanggil di setiap kolom. apa itu dsum ? kalau di ibaratkan sub query, maka : DSum("penjualan","table1","bln=1") AS bln1 bisa menjadi: SELECT SUM(penjualan) FROM table1 WHERE bln=1 SELECT DISTINCT DSum("penjualan","table1","bln=1") AS bln1, DSum("penjualan","table1","bln=2") AS bln2, DSum("penjualan","table1","bln=3") AS bln3, DSum("penjualan","table1","bln=4") AS bln4, DSum("penjualan","table1","bln=5") AS bln5, DSum("penjualan","table1","bln=6") AS bln6, DSum("penjualan","table1","bln=7") AS bln7, DSum("penjualan","table1","bln=8") AS bln8, DSum("penjualan","table1","bln=9") AS bln9, DSum("penjualan","table1","bln=10") AS bln10, DSum("penjualan","table1","bln=11") AS bln11, DSum("penjualan","table1","bln=12") AS bln12 FROM table1; 2. Lebih efisien karena langsung di compile dari satu sumber query: SELECT Sum(IIf([bln]=1,[penjualan],0)) AS bln1, Sum(IIf([bln]=2,[penjualan],0)) AS bln2, Sum(IIf([bln]=3,[penjualan],0)) AS bln3, Sum(IIf([bln]=4,[penjualan],0)) AS bln4, Sum(IIf([bln]=5,[penjualan],0)) AS bln5, Sum(IIf([bln]=6,[penjualan],0)) AS bln6, Sum(IIf([bln]=7,[penjualan],0)) AS bln7, Sum(IIf([bln]=8,[penjualan],0)) AS bln8, Sum(IIf([bln]=9,[penjualan],0)) AS bln9, Sum(IIf([bln]=10,[penjualan],0)) AS bln10, Sum(IIf([bln]=11,[penjualan],0)) AS bln11, Sum(IIf([bln]=12,[penjualan],0)) AS bln12 FROM Table1; 3. Bentuk Crosstab, memerlukan latihan khusus, sifatnya dinamis, artinya kolom-kolom yang ditampilkan dalam query hanya yang berisi data saja, dalam hal ini hanya bulan 1,2, dan 3 saja yang memiliki data. Jika anda menginginkan semua bulan ditampilkan dalam crosstab, maka anda harus menambahkan baris/data di dalam tabel untuk bulan 4 hingga 6 dengan nilai 0. TRANSFORM Sum(Table1.penjualan) AS SumOfpenjualan SELECT "Penjualan" AS Data FROM Table1 GROUP BY "Penjualan" PIVOT Table1.bln; Kegunaan pivot bisa anda nikmati jika misalnya data anda juga menyertakan informasi lain seperti area, jadikan area menjadi row heading, dan periksalah hasil cross tabnya. Anda bisa mendapatkan perbandingan perjualan dari bulan ke bulan untuk setiap area. Bisa dipermanis pula dengan grafik. Aksan Kurdin --- In [email protected] <mailto:belajar-access%40yahoogroups.com> , "Siahaan, Reinhard [North Wellwork]" <[EMAIL PROTECTED]> wrote: > > Ok, Mantaps, > > Totalnya sudah cocok, namun ditampilkan sebanyak 6 record. boleh nggak > yach 1 record saja ditampilkan > > salam > RS > > ________________________________ > > From: [email protected] <mailto:belajar-access%40yahoogroups.com> > [mailto:[email protected] <mailto:belajar-access%40yahoogroups.com> ] On Behalf Of hari yanto > Sent: Wednesday, August 22, 2007 11:18 AM > To: [email protected] <mailto:belajar-access%40yahoogroups.com> > Subject: Re: [belajar-access] REKAP HERIZONTAL > > > > Menurut saya buat query, terus pada field-nya isi > rumus Dsum: > > BLN1: DSum("[Penjualan]";"Table1";"[bln]='1'") > BLN2: DSum("[Penjualan]";"Table1";"[bln]='2'"), dst > > Hariyanto (Surabaya) > > --- "Siahaan, Reinhard [North Wellwork]" > <[EMAIL PROTECTED] <mailto:rsoy%40chevron.com> > wrote: > > > Selamat Pagi para Access Mania, > > > > Mohon bantuaanya yach, > > > > Tabel penjualan berisi > > > > bln penjualan > > 1 5000 > > 2 3000 > > 3 6000 > > 2 1000 > > 2 6000 > > 1 6000 > > > > Pertanyaanya : Aku mau buat query sbb (Total bulan > > 1 - 3, query > > kesamping) > > > > bln1 bln2 bln3 > > 11000 10000 6000 > > Mohon bantuannya bagaimana caranya yach. > > > > Salam > > RS > > > > > > > > > > Send instant messages to your online friends > http://uk.messenger.yahoo.com <http://uk.messenger.yahoo.com> <http://uk.messenger.yahoo.com <http://uk.messenger.yahoo.com> > >

