Membuat Transact SQL


Berikut ini adalah contoh membuat transact SQL Microsoft SQL Server 2005 untuk menampilkan tagihan keuangan siswa. Sebagai persiapan berikut langkah-langkahnya :

1. Buat tabel dengan nama table_siswa, isi dengan data seperti pada gambar dibawah ini :

2. Buat tabel pembayaran dengan nama table_bayar, data diisi dengan data dummy tampak seperti pada gambar dibawah ini :

3. Dari kedua tabel tersebut akan dibuat sebuah transact SQL MS SQL 2005, Sehingga ketika dijalankan akan tampak output seperti dibawah ini :

 

Penyelesaian :

Untuk menyelesaikan kasus tersebut maka anda buat transact SQL seperti berikut :

 

DECLARE
@no_induk char(8), @tgl_bayar datetime, @jml_bayar int,
@nama varchar(40), @jurusan varchar(5), @nm_jurusan varchar(55),
@jk char(1), @kelas varchar(10), @no_urut int, @total_bayar int,
@atas int, @bawah int

SET @no_induk='20111002'
SET @kelas='XII RPL 1'

SELECT @nama=nama_siswa, @jurusan=jurusan,
@jk=jk from tabel_siswa where no_induk=@no_induk

if @jurusan='RPL' SET @nm_jurusan='Rekayasa Perangkat Lunak'
else if @jurusan='AK' SET @nm_jurusan='Akuntansi'
else if @jurusan='UPW' SET @nm_jurusan='Usaha Jasa Parawisata'

PRINT 'SMK N 2 Kuningan'
PRINT 'Jl. Sukamulya No. 77 Kuningan'
PRINT '------------------------------------------------------'
PRINT 'Nama : '+@nama
PRINT 'KElas : '+@kelas
PRINT 'Jurusan : '+@nm_jurusan
PRINT '------------------------------------------------------'
PRINT 'No. '+space(1)+'Tgl. Pembayaran'+space(15)+'Jumlah'
PRINT '------------------------------------------------------'

-- Mencari kode bayar teratas
select @atas=max(kode_bayar) from tabel_bayar where no_induk=@no_induk
-- Mencari kode bayar terbawah
select @bawah=min(kode_bayar) from tabel_bayar where no_induk=@no_induk

SET @no_urut=0

while @atas>=@bawah -- ketika kode atas lebih besar dari kode bawah
Begin
select @tgl_bayar=tgl_bayar,@jml_bayar=jumlah_bayar
from tabel_bayar where no_induk=@no_induk and kode_bayar=@atas

SET @atas=@atas-1 -- kode teratas dikurangi satu
SET @no_urut=@no_urut+1

PRINT convert(char(1),@no_urut)+space(5)+convert(varchar(11),@tgl_bayar)+
space(10)+'Rp '+str(@jml_bayar)

END

Select @total_bayar=sum(jumlah_bayar) from tabel_bayar
where no_induk=@no_induk group by no_induk

PRINT '------------------------------------------------------'
PRINT 'Total : Rp' + str(@total_bayar)
PRINT '------------------------------------------------------'

PRINT 'Kepala Sekolah,'
PRINT ''
PRINT ''
PRINT 'Hendi C. Sukarsa,M.Pd.'
PRINT 'NIP. 123 456 789'

Kirim Komentar

Nama
Email
Website
Komentar
Validasi
Ketik ulang Kode berikut pada kotak diatas
Terdapat 0 komentar untuk artikel ini !