Sharing Everything From My Experience And Knowlegde |
T-SQL : Cara Membuat Table Relationship One Field To Many Fields Posted: 24 Sep 2013 08:15 PM PDT Mungkin sahabat DJIESOFT pernah berhadapan dengan kasus 1 field_kode tapi isinya bisa mewakili isi dari beberapa table lain. Contohnya, saya mempunyai table transaksi penjualan (bukti, tanggal, customer), tapi customer disini (yang beli) bisa dari master customer, bisa dari master pegawai (pegawai-nya sendiri membeli) dan yang terakhir bisa dari master pihak ke tiga (siapapun). lihatlah relasi table yang sudah saya buat : Nah lalu bagaimana cara mendapatkan nama_customer yang dalam hal ini isinya bisa kemungkinannya dari nama_customer, nama_pegawai atau nama_pihak3 ??? Ok caranya mudah, 1 kita harus melakukan LEFT JOIN dari table transkasi, sehingga relasinya seperti dibawah ini :kemudian untuk mencari nama_customer nya kita gunakan kondisi NULL, artinya jika NULL maka tidak ada di salah satu table tersebut dan kita lakukan pencarian ke table yang lain. Sintaknya ? cukup sederhana : ISNULL(dbo.CUSTOMER.NAME, ISNULL(dbo.PEGAWAI.NAME, ISNULL(dbo.PIHAK3.NAME,''))) AS CUSTOMER_NAME Artinya, pilih nama customer nya pertama cari dari table_customer, jika tidak ada cek dari table pegawai, jika tidak ada cek dari table pihak3, jika tidak ada di ketiga table itu terakhir maka set nama customernya = kosong/blank. Ini query lengkapnya : SELECT dbo.TRANSAKSI_H.BUKTI, dbo.TRANSAKSI_H.TANGGAL, dbo.TRANSAKSI_H.CUSTOMER, ISNULL(dbo.CUSTOMER.NAME, ISNULL(dbo.PEGAWAI.NAME, ISNULL(dbo.PIHAK3.NAME,''))) AS CUSTOMER_NAME FROM dbo.TRANSAKSI_H LEFT OUTER JOIN dbo.CUSTOMER ON dbo.CUSTOMER.CUSTOMER = dbo.TRANSAKSI_H.CUSTOMER LEFT OUTER JOIN dbo.PIHAK3 ON dbo.TRANSAKSI_H.CUSTOMER = dbo.PIHAK3.PIHAK3 LEFT OUTER JOIN dbo.PEGAWAI ON dbo.TRANSAKSI_H.CUSTOMER = dbo.PEGAWAI.PEGAWAI OK, semoga bermanfaat untuk kasus yang serupa atau mirip dengan contoh diatas. GoodLuck !!! Tags: cara membuat relasi table, relationship table maker, how to join table, t-sql tutorial |
You are subscribed to email updates from Djiesoft, All About Source Code To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
No comments:
Post a Comment