Sorgularla Yürüyen Bakiye (Running Sum)
#1
Çok sık karşılaştığımız yürüyen bakiye ( Birikmeli toplam, runningsum) sorunlarınız ve nasıl yapıldığı konusuna ait basit ama işlevsel bir örnek hazırladım. Bu konuyu ne zaman araştırırsanız araştırın karşınıza hep DSUM hazır fonksiyonu çıkacaktır ama aşağıdaki örnekte DSUM hiç kullanılmamıştır...

Tablomuzun adı tablo1, içerdiği alanlar;

id: oto sayı
Tarih: Kısa Tarh
Şehir: Metin
Cinsi: Metin
Adet: Sayı

Amacımız ;

Tarihe göre, şehire göre ve cinse göre yürüyen bakiye alabilmek

Tarihe göre almak;

SQL
  1. SELECT a.id, a.Tarih, a.Cinsi, a.Şehir, a.Adet,
  2. (SELECT SUM(adet) FROM tablo1 WHERE tarih=a.tarih AND id<=a.id ) AS toplam
  3. FROM Tablo1 AS a
  4. ORDER BY a.Tarih, a.id;



------------------------------------------------------

Şehir'e göre almak;

SQL
  1. SELECT a.id, a.Şehir, a.Cinsi, a.Adet,
  2. (SELECT SUM(adet) FROM tablo1 WHERE şehir=a.şehir AND id<=a.id) AS toplam
  3. FROM Tablo1 AS a
  4. ORDER BY a.Şehir, a.id;



-------------------------------------------------------

Cins'e göre almak;

SQL
  1. SELECT a.id, a.Cinsi, a.Şehir, a.Adet,
  2. (SELECT SUM(adet) FROM tablo1 WHERE cinsi=a.cinsi AND id<=a.id) AS toplam
  3. FROM Tablo1 AS a
  4. ORDER BY a.Cinsi, a.id;



-------------------------------------------------------


Gördüğünüz gibi hepsi birbirine çok benziyor dikkat etmeniz gereken toplamını almak istediğiniz alanı sıralamada başa almak ve "where" şartında oluşturduğumuz "a" alias isimli tablomuzla karşılaştırmak. Demek ki "a" alias (rumuz) ını da bu yüzden verdirdik tablomuza, bu rumuzlar aynı zamanda sql görünümde yazarken uzun tablo isimlerini kısaltmanız için de birebirdir.

Not: Biliyorum ki elma ve armut toplanmaz. Mazur görün Wink

Aşağıya yukarıdaki tüm olayların bir örneğini ekliyorum..


Eklenti Dosyaları
.rar   yürüyen bakiye.rar (Boyut: 11,5 KB / İndirilme: 1.118)
Javascript
  1. this.setState({sign:"Here comes the sun...."})







  Alıntı
Bu mesajı beğenenler:
#2
Merhaba sayın beab2005,
örneginiz güzel ama,
biraz eksik gibi, birçok kişinin istedigi benim ekledigim türden bir formdur bence,
Müşteriye ve tarihe göre Kalan sutunda toplanarak inen bakiye olmalı
rica etsem bunun üzerinde yaparmısınız,
İyi çalışmalar dilerim


Eklenti Dosyaları
.rar   yürüyen bakiye.rar (Boyut: 30,69 KB / İndirilme: 385)



  Alıntı
Bu mesajı beğenenler:
#3
Merhaba;
Bence eksik demeyelim o sadece bu tür soru ve sorunlar için yol gösterici bir örnekti, yoksa herkesin istediği farklıdır ve hepsine mevcut haliyle çözüm elbette olamaz. Sizin örneğinizi de yukarıda verdiğim yöntemin aynısıyla yaptım, yani sizin deyiminizle birçok kişinin istediği gibi oldu Wink


Eklenti Dosyaları
.rar   yuruyen bakiye_bb.rar (Boyut: 20,5 KB / İndirilme: 856)
Javascript
  1. this.setState({sign:"Here comes the sun...."})







  Alıntı
Bu mesajı beğenenler:
#4
Merhaba sayın beab2005,
Çok güzel olmuş elinize sağlık,
ama nasıl yaptığınızı anlayamadım,
a isminde bir tablo yok, sorguda a tablosundaki alanlarda işlem yapılıyor.
hem neden 2 sorgu yaptınız.?
Lütfen açıklayabilirmisiniz.?



  Alıntı
Bu mesajı beğenenler:
#5
2 sorgu yok, sorgu1 yanlışlıkla kaldı, siliniz. Wink Sorgu2 ise sizin cari sorgudan türedi.. Siz demek ki en başta verdiğim örneği anlamaya çalışmadınız. Bence biraz inceleyiniz "a" isimli tablo istediğimiz tablonun bir yansımasıdır sadece, where şartında karşılaştırma yapabilmek için. Gördüğünüz gibi aklınıza gelebilecek her türlü şarta göre yürüyen bakiye almak son derece kolay ve hızlı. Bana kalırsa kendiniz denemeler yapın tarihe göre, isme göre bazı verileri toplamayı deneyin. Pratik yaparak anlamaya çalışın. Sanırım "yürüyen bakiyeler" artık problem olmayacak Wink
Javascript
  1. this.setState({sign:"Here comes the sun...."})







  Alıntı
Bu mesajı beğenenler:
#6
altforma veri girişi yapılamıyor,
hala a tablosunun nasıl oluştuğunu anlamış degilim. Smile



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Sorgularla Önceki ya da Sonraki Verilerde İşlem beab05 9 11.787 26-11-2013, 22:20
Son Mesaj: max7
  Yürüyen Bakiye : Hız Zeki Gürsoy 26 16.036 26-07-2013, 11:42
Son Mesaj: Gencerx
  yuruyen bakıyeler KYSKYS 28 13.474 15-07-2008, 18:44
Son Mesaj: Zeki Gürsoy

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar):