Jumat, Desember 05, 2008

Mendapatkan LIST dari Query Firebird SQL

Firebird 2.1 membawa banyak fungsi bawaan (built-in), salah satunya adalah string aggregate function LIST( ), untuk mendapatkan efek seperti sum untuk string, yakni comma separated values.

LIST( ) adalah fungsi agregat yang mengelompokkan data dari suatu kolom/field dan kemudian menampilkannya dalam bentuk comma separated values.

Contoh:
SELECT a.ED_INSTITUTIONNAME FROM TBMST_EDUINSTITUTION a

Outputnya:
Akademi Advent
Akademi Bahasa Asing
Akademi Kimia Analis
Akademi Perawatan Bina Insani
Akademi Pimpinan Perusahaan
Akademi Teknik Patriot
Akademi Teknik

....

Sedangkan perintah:
SELECT List(a.ED_INSTITUTIONNAME) FROM TBMST_EDUINSTITUTION a

Outputnya:
Akademi Advent,Akademi Bahasa Asing,Akademi Kimia Analis ,Akademi Perawatan Bina Insani,Akademi Pimpinan Perusahaan,Akademi Teknik Patriot,Akademi Teknik Wiworotomo,AKPER Depkes RI,AKPINDO ,AMIK Cikarang,AMIN,APP ,ASMTB,ATMI,IKOPIN,Institut Budi Utomo,Institut Keguruan Ilmu Pendidikan,Institut Keguruan Ilmu Pendidikan,Institut Keguruan Ilmu Pendidikan,Institut Pertanian Bogor,Institut Sains & Teknologi AKPRIND,Institut Sains dan Teknologi Nasional,Institut Teknologi Indonesia,Institut Teknologi Industri,Institut Teknologi Nasional,Institut Teknologi Nasional Bandung,Institut Teknologi Sepuluh Nopember,Institute Teknologi Bandung,ITATS ,ITN ,ITN Malang,ITN, Malang,Lembaga Pendidikan Keterampilan,Politeknik Andalas,Politeknik Brawijaya,Politeknik Institut Teknologi Sepuluh November,Politeknik ITB ,Politeknik Jawa Dwipa,Politeknik Manufaktur Astra,Politeknik Manufaktur Bandung,Politeknik Negeri ,Politeknik Negeri Bandung,Politeknik Negeri Jakarta,Politeknik Negeri Medan,Politeknik Negeri Semarang ,Politeknik Trisila Dharma

Oh.. ternyata ada batasan lebar hasil list, contoh diatas ukurannya > 1035 karakter.

Dicoba lagi lebih spesifik:
SELECT LIST(a.ED_INSTITUTIONNAME)
FROM TBMST_EDUINSTITUTION a
where a.ED_INSTITUTIONNAME STARTING WITH 'U'


Hasilnya:

Universitas Sanata Dharma,Universitas Abulyatama Aceh,Universitas Ahmad Yani ,Universitas Andalas,Universitas Atmajaya,Universitas Bina Nusantara,Univ. Borobudur,Universitas Brawijaya,Univ. Budi Luhur,Universitas Bung Hatta,Universitas Dharma Persada,Universitas Kyoto,Universitas Diponegoro,Universitas Djuanda,Universitas Eka Sakti Padang,Universitas Gadjah Mada,Universitas Gunadarma ,Univ. Haluoleo,Universitas Indonesia,Universitas Islam,Universitas Islam Bandung,Universitas Islam Indonesia Yogyakarta,Universitas Janabadra ,Universitas Jayabaya,Universitas Jember,Universitas Krisna Dwipayana,Universitas Kristen Surakarta,Universitas Mercubuana,Universitas Merdeka,Universitas Muhammadiyah Jakarta,Universitas Muhammadiyah Malang ,Universitas Muhammadiyah Surakarta,Univ. Muslim Indonesia,Universitas Negeri Malang ,Universitas Negeri Jakarta,Universitas Negeri Padang,Universitas Negeri Yogyakarta,Universitas Pajajaran,Universitas Pakuan Bogor ,Universitas Pancasila ,Universitas Parahyangan,Universitas Pasundan


Divariasikan dengan institusi pendidikan berawalan 'S', hasilnya:

Sekolah Tinggi Akutansi Negara,Sekolah Tinggi Ilmu Administrasi,Sekolah Tinggi Ilmu Ekonomi,Sekolah Tinggi Ilmu Ekonomi,Sekolah Tinggi Manajemen Industri,Sekolah Tinggi Manajemen Informatika,Sekolah Tinggi Teknik,Sekolah Tinggi Teknik Tekstil,Sekolah Tinggi Teknik Telkom,Sekolah Tinggi Teknologi Lingkungan,Shizuoka Sangyo Daigaku,STMIK Bani Saleh,STTN ,STMIK LPMIK Cipto Hadi Pranoto,STMT Trisakti,ST-INTEN


Kalau di MS SQL Server, string aggregate function List( ) ini bisa diakali dengan perintah sbb :

select @pivot = coalesce ( @pivot+',','') + '[' + pivot_column + ']' from #pivot_columns



Fitus list ini banyak berguna dalam laporan-laporan, sehingga laporan/report lebih sederhana namun lebih informatif.

Tidak ada komentar: