From: | Uygar UZUNHASAN <uygaruzunhasan(at)yahoo(dot)com> |
---|---|
To: | "pgsql-tr-genel(at)postgresql(dot)org" <pgsql-tr-genel(at)postgresql(dot)org> |
Subject: | kümülatif toplam sorgusu |
Date: | 2013-09-09 11:47:27 |
Message-ID: | 1378727247.78316.YahooMailNeo@web160902.mail.bf1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
Merhabalar
Çözemediğim bir sorgu tipi var, altta bir özeneğini göstereyim.
tablomuz:
id/ tip/ miktar
1 /x/ 10
2 /x/ 20
3 /x/ -25
4 /x/ -25
5 /x/ 50
6/x/ -40
7 /x/ 60
buradan alacağım sonuçta toplamlar hiç sıfırın altına düşmemeli ve ona göre toplanarak gitmeli (olmasıGereken sütunu), ama yapabildiğim sadece sıralı toplam alabilmek şöyleki:
SELECT sum(miktar) over (PARTITION BY tip ORDER BY id) as kalan FROM tablomuz;
id/tip/ miktar/kalan/olmasıGereken
1 /x/ 10 / 10 / 10
2 /x/ 20 / 30 / 30
3 /x/ -25 / -5 / -5
4 /x/ -25 / -30 / 0
5 /x/ 50 / 20 / 50
6 /x/ -40 / -20 / 10
7 /x/ 60 / 40 / 70
Kısaca durumu şöyle özetleyim, pozitif miktarlar alınan siparişi, negatif miktarlar ise teslimatı gösteriyor. Siparişten fazla yapılan teslimatlar, eğer normal bir toplam çalıştırılırsak bir sonraki siparişten düşüyor, halbuki sipariş verilirken önceden fazla gelmiş mallar göz önünde bulundurularak yapılıyor.
Uygar UZUNHASAN
From | Date | Subject | |
---|---|---|---|
Next Message | N. Can KIRIK | 2013-09-09 13:16:55 | Re: [pgsql-tr-genel] kümülatif toplam sorgusu |
Previous Message | N. Can KIRIK | 2013-08-01 00:11:08 | Re: FW: Stalled post to pgsql-tr-genel |