Penjumlahan Otomatis Di Sql Server 2008


 

Pernah mengalami kebingunan untuk menjumlahkan data menurun secara otomatis ?. Contoh Seperti Tabel Berikut :
Dengan contoh diatas, saya ingin mendapatkan nilai penjumalahan baru dengan nama kolom total. Yang isinya adalah hasil dari penjumalahan dari kolom value, tetapi dengan rumus = total id 1 adalah value 1,
total id 2 adalah [total id 1 + value id 2],
total id 3 adalah [total id 2 + value id 3],
total id 4 adalah [total id 3 + value id 4],
begitu seterusnya sampai total id ke 14 adalah [total id 13 + value id 14].

Saat disuruh membuat laporan dari sebuah program yang mengharuskan menggunakan penjumlahan otomatis secara menurun untuk laporan stock barang. Saya mencoba bertanya ke pada IT senior ditempat saya, mereka hanya menyarankan untuk menggunakan looping. Saat saya mencoba dengan looping, malah mengalami tambah kesulitan. Mungkin memang script saya yang kurang tepat, sehingga saat proses looping berjalan. Proses tersebut malah tidak berhenti.

Kemudian saya coba googling kesana kemari, tidak ada rumus yang seperti saya inginkan. Setelah sekian lama googling, akhirnya dapat juga dari blog tetangga. Tetapi saya lupa mencatat nama blog tersebut, karena di kejar dead line laporan. he he he

Dengan script diatas, saya mendapatkan hasil seperti yang saya inginkan. Berikut gambah hasil tabelnya :


Yang perlu anda ingat, supaya hasil penjumlahannya benar, maka id harus dipastikan sama antara @Table x dan @Tabel z.
Semoga tutorial singkat ini, dapat membantu ada untuk membuat laporan stock ataupun yang laen. he . . . .he . . . he . .
indonesiamumet.blogspot.com

Comments

  1. GA JELAS LU,,,
    MAKSUD DARI
    [solitairecbg].[dbo].[runtotaltestdata]
    DARI MANA ASALNYA,,,

    MNDING GA USAH POST LU TAE

    ReplyDelete
    Replies
    1. SolitaireCBG itu nama database,
      dbo itu tipe database yang ada di sql server,
      runtotaltestdata itu nama tabel.

      nama tabel terserah yang penting isinya angka-angka yang ada di contoh.
      script tersebut bisa dipersingkat dengan select * from runtotaltestdata.
      sorry kalau kurang lengkap.

      Delete
  2. makasih om tutornya... sangat membantu

    http://www.newspoint.id

    ReplyDelete
  3. gan kalau nyari saldo dari field Debet,Kredit gmn?
    misal

    D | K | S
    __________
    2 | 0 | 2
    1 | 0 | 3
    0 | 1 | 2

    ReplyDelete
    Replies
    1. Mungkin bisa menggunakan rumus berikut ini :

      create table Test (Transaksi varchar(10),D int, K int)
      insert into test values ('A',2,0),('B',1,0),('C',0,1)
      go

      drop table test
      declare @TempTable Table (Nomer int, Transaksi varchar(10), D int, K int, S int)

      insert @TempTable
      select ROW_NUMBER () over (order by transaksi) as Nomer, Transaksi,
      SUM(D) as D, SUM(K) as K,SUM(D-K) as S
      from test
      group by Transaksi

      select b.Transaksi, D, K, (select SUM(S) from @TempTable a where a.Nomer<=b.Nomer) as S
      from @TempTable b

      Semoga bisa menjawab.

      Delete
  4. wah ciamik.. bisa gan... makasih mas tutornya, sangat membantu :)

    ReplyDelete
    Replies
    1. sama-sama gan, senang bisa membantu dan berbagi ilmu.

      Delete
  5. gan mau tanya.. jika di sql server 2008
    dengan database stok
    trus nama tabel 1 nya dbo.barang dengan field jumlah_stok
    trus nama tabel 2 nya dbo.beli dengan field jumlah_order
    gimana cara nambahkan nya gan??
    nanti hasilnya jumlah_stok nya bertambah dari jumlah_order nya gan...?

    ReplyDelete
    Replies
    1. Maaf sebelumnya, saya masih belum begitu paham dengan maksud pertanyaannya. Saya akan mencoba membantu sesuai bahasa pemahaman saya.

      Kalau tabel barang hanya untuk jumlah stok. Mungkin bisa dibuat, seperti ini. Saya anggap, prosesnya dilakukan di form pembelian.

      untuk script updatenya seperti berikut.

      update dbo.barang set jumlah_stok = jumlah_stok + jumlah order where kode_barang = kode_barang

      Semoga bisa menjawab.

      Delete
  6. GAN LU TERDEBEST POKOKNYA
    SUKSES SELALU BUAT ENTE DAN KELUARA

    ReplyDelete

Post a Comment

My Channel