Mondrian >
MDX Tips
Previous "Full Year" Summary from Current Time Member
PermasalahanDi berbagai laporan analisis yang kita temui, time dimension bisa dipastikan adalah dimension yang mutlak ada. Kepentingan analisis terhadap waktu hampir pasti tidak bisa ditawar lagi.
Salah satu laporan yang saat ini saya jumpai adalah menemukan summary "full year" (total keseluruhan tahun) dari produk dan waktu tertentu di tahun sebelumnya.
Sebagai contoh lihatlah skenario berikut. Contoh 1 adalah laporan tahunan biasa dan yang kedua adalah laporan dengan analisis komparasi dari bulan tertentu.
Contoh 1 :
Laporan Penjualan 3 Tahun Terakhir
Contoh 2 :
Laporan Analisa Penjualan
Periode : Mei 2005
Terlihat pada contoh kedua pada baris detail terlihat detil penjualan dari bulan 2005 dan 2004 dan summary dari keseluruhan tahun 2005 dijadikan satu view. Hal ini misalnya untuk mendapatkan varian dari rasio pencapaian.
Jadi bagaimana ini dilakukan di MDX ?
Pertama.. mari kita perhatikan dimensi dan member dari berbagai level hierarchy yang terlibat.
Dimensi dan Hierarchy Yang TerlibatUntuk contoh di atas kita memiliki dimension dan hierarchy sebagai berikut :
Untuk solusi ekspresi MDX pada contoh di atas bisa dicapai dengan menggunakan fungsi MDX Ancestor dan PrevMember. Tetapi untuk memperjelas, sebelumnya saya menunjukkan contoh pembentukan member secara "hard code" terlebih dahulu. Misalkan dari hirarki di atas "Produk A" dan "Produk B" masuk ke level "Nama Produk". Keduanya ada dalam kategori "Kategori 1". Maka contoh ekspresi MDX untuk titik-titik pengukuran "Bulan Berjalan" dan "Total Tahun Lalu" di atas adalah sebagai berikut :
Terlihat kedua member waktu di contoh ekspresi tidak berada pada level yang sama. Dengan "hard code" tentunya ini bisa gampang dilakukan. Nah, permasalahannya dengan reporting yang generik sesuai kondisi parameter yang kita masukkan, bagaimana kita mencapai hal tersebut ? Solusinya adalah sebagai berikut.... Dengan selalu berasumsi bahwa :
maka kita ubah ekspresi di atas menjadi :
Fungsi Ancestor di atas berfungsi mengambil member dari level "Tahun" terlebih dahulu. Dan karena kita berkepentingan untuk mengambil total tahun sebelumnya, maka kita perlu ke belakang 1 member dari level tersebut. Hal ini dicapai dengan mengunakan PrevMember setelah fungsi Ancestor. Contoh Pada Steel WheelsBerikut adalah screenshot contoh penerapan pada cube [SteelWheelsSales] yang datang dengan paket Pentaho BI Server. Bacaan Lebih LanjutPada contoh laporan di atas, terlihat ada pengukuran yang menarik yaitu "Penjualan Bulan Berjalan di Tahun Lalu". Sengaja tidak saya bahas agar tidak melebar dari judul. Namun solusinya cukup sederhana, yaitu dengan menggunakan fungsi ParallelPeriod. Untuk keterangan dan contoh fungsi ini Anda dapat mengunjungi halaman MSDN berikut ini : Dan untuk Anda yang kesulitan dengan MDX ini dapat berdiskusi bersama dengan bergabung di User Group Pentaho Indonesia (pentaho-id@googlegroups.com). |
1-1 of 1