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:

3 yorum:

yılmaz yılmazer dedi ki...

Ç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

Unknown dedi ki...

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

Mehmet GÜZEL dedi ki...

Kodunuzu ve aldığınız hatayı paylaşabilir misiniz?

.::YASAL UYARI::.

©2004-2018 Mehmet GÜZEL, http://www.mehmetguzel.net/ & http://www.mehmetguzel.com/

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.