2011-08-11

Bir Tablodaki Kümülatif Satır Toplamını Bulma

Yazılım geliştiren bir arkadaşın "Bir tablodaki kümülatif satır toplamı belli değerin altında olan kayıtları nasıl bulabilirim?" sorusuna cevap bulmak için aşağıdaki gibi bir test tablosu oluşturdum:

create table [dbo].[TableCumulative](
[id] [int] identity(1,1) not null,
[urunkodu] [varchar](16) null,
[adet] [int] null
) on [primary]


Oluşturduğumuz tablomuzdaki verilerimiz aşağıdaki gibi olsun:


TableCumulative tablosundaki  adet alanının kümülatif satır toplamlarını aşağıdaki SQL kodu ile bulabiliriz:

select id,
urunkodu,
adet,
select sum(x.adet) from tablecumulative as x where x.id <= s.id and x.urunkodu=s.urunkodu) as cumulativesum

from tablecumulative as s
order by id

Sorgu Sonucu:

Kümülatif satır toplamları 7'den küçük olan kayıtları bulalım:

select *
from(
select id,
urunkodu,
adet,

(select sum(x.adet) from tablecumulative as x where x.id <= s.id and x.urunkodu=s.urunkodu) as cumulativesum
from tablecumulative as s
)drv
where cumulativesum <=7

Sorgu Sonucu:

6 yorum:

  1. ÇOK TEŞEKKÜR EDERİM ÇOK İŞİME YARADI SQL SERVER 2008 DE OVER VE ORDER I AYNI ANDA KULLANAMADIĞIMIZ İÇİN BU KOD OLMADAN ÇIKILAMAZDI İŞİN İÇİNDEN. DENEDİM ÇALIŞIYOR EMEĞİ GEÇEN HERKESE TEŞEKKÜR EDERİM

    YanıtlaSil
  2. Mehmet bey iyi günler!
    Biraz Asp ile kendi işyerimin web sayfasını yaptım...Hesaplarımı oradan işliyorum.Yapılan alışverişlerin Müşteri bazında bakiyelerini alabiliyorum..Ama mutabakat yaparken müşteri ile belli tarihe dönmek gerekiyor..Lafı uzatmadan sizin hazırladığınız kümülatif toplam kodlarını çalıştıramadım.
    ----select id,
    urunkodu,
    adet,
    select sum(x.adet) from tablecumulative as x where x.id <= s.id and x.urunkodu=s.urunkodu) as cumulativesum
    from tablecumulative as s
    order by id---

    Veri tabanında kolonlar(Musteri,id,tutar,odenen,kalan)
    Access..sql 2005(?) kullanıyorum.
    Yardımcı olursanız sevinirim.Saygılar...


    Sezai Kavukoğlu...www.eylulplastik.com

    YanıtlaSil
  3. Kodunuzu ve aldığınız hatayı paylaşabilir misiniz?

    YanıtlaSil
  4. Merhabalar,
    SQL Pivot table da satır ve kolon dip toplamlarını nasıl aldırabilirim?
    Taşekkürler

    YanıtlaSil
  5. merhaba
    teşekkürler benim için çok faydalı oldu over ile gruplama yapamamıştım sayenizde yapabildim.

    YanıtlaSil
  6. Idler sirali degilse nolucak ki sirali olmama ihtimali kesin

    YanıtlaSil

Lütfen yorumlarınızda Ad Soyad ve Web sayfanızın adresini girelim!