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> >
>



 

Kirim email ke