Untungnya dalam program e-tax terdapat fasilitas untuk melakukan export data ke CSV dan bisa di transfer ke database SQL Serve yang digunakan program aplikasi. Akan tetapi saya mendapatkan kesulitan, salah satunya adalah melakukan join NPWP dari pelanggan antara tabel data master program aplikasi dengan data NPWP yang merupakan hasil import e-tax. Kesulitannya adalah jika dalam tabel master pelanggan untuk fields NPWP menggunakan format, misalkan 07.790.293.0-505.000 (dengan format), tetapi data e-tax adalah 077902930505000 (tanpa format).
Fungsi REPLACE
Setelah saya cari ternyata sangat mudah untuk melakukannya, yaitu dengan fungsi Replace, sebuah fungsi dalam SQL Server yang secara umum berfungsi mengganti (replace) beberapa karakter pada ekspresi string dengan patren karakter tertentu yang kita kehendaki.Syntax atau penulisan fungsi REPLACE sangat sederhana, yaitu seperti pola penulisan dibawah ini:
REPLACE ( string_expression , string_pattern , string_replacement )
string_expression adalah ekspresi atau data string, bisa berupa konstanta, variable atau fields string yang akan diproses.
string_pattern adalah pola dari karakter tertentu (1 atau lebih karakter) yang akan diganti/replace.
string_replacement adalah pola dari karakter pengganti (0 atau lebih karakter) sebagai pengganti.
Sebagai contoh perhatikan 2 query berikut ini:
SELECT Replace('bala-bala', 'ba', 'paha')
dengan quey ini maka akan dihasilkan recordset data berikut ini:
------------------------------------------------
pahala-pahala
SELECT KodeCustomer, NamaCustomer, Replace(KodeCustomer, 'A3', 'XX') AS KodePengganti FROM FileCustomer
KodeCustomer NamaCustomer KodePengganti
--------------- -------------------------------------------------- ----------------------------------------------------
A3179 DENTA 29 (SLTG) XX179
A3180 SATYA FARMA (YOG) XX180
A3181 RESTU MEDIKA (SRGN) XX181
A3182 WARAS (SKH) XX182
Menghilangkan Format Data String
Jika mempunyai permasalahan di atas tentang bagaimana bisa melakukan join dengan kunci data NPWP 07.790.293.0-505.000 (dengan format) dengan data NPWP 077902930505000?Dengan menggunakan fungsi REPLACE ternyata sangat mudah dengan menggunakan cara seperti contoh berikut ini:
Untuk merubah NPWP 07.790.293.0-505.000 menjadi non fomat menjadi 077902930505000, maka bisa digunakan cara dengan menggunakan fungsi:
Replace(Replace('07.790.293.0-505.000','.',''),'-','')
Penulisan fungsi tersebut akan memproses data NPWP 07.790.293.0-505.000 mengganti tanda '.' (titik) dengan karakter '' (kosong), diproses selanjutnya mengganti tanda '-' (strip) dengan karakter '' (kosong), sehhingga akan akan dihasilkan data NPWP 077902930505000
Dengan penjelasan contoh diatas, maka dapat melakukan join dengan kunci field yang berbeda format dengan query sebagai berikut:
SELECT * FOM FileCustomer C
INNER JOIN FaktuPajak P ON Replace(Replace(C.NPWP,'.',''),'-','') = P.NPWP
Ini adalah salah pengalaman saya sebagai programmer, yang walaupun sangat sederhana tetapi pada suatu saat akan sangat dibutuhkan. Semoga artikel ini bermanfaat bagi anda. Untuk mendapatkan trik-trik SQL Server yang lain anda dapat lihat dari artikel blog kami disini.
Daftarkan email anda disini untuk berlangganan artikel kodiing
ConversionConversion EmoticonEmoticon