Toplamların Toplamını Bulmak

Katılım
5 Nisan 2015
Mesajlar
16
Excel Vers. ve Dili
2007
create table table1 (HSPKOD varchar(30), Borc float(30), Alacak float(30))
INSERT INTO table1 (HSPKOD, BORC, ALACAK)
values
(600.10,Null,6500),
(391.10,Null,1000),
(100.10,7500,Null),

(600.10,Null,6500),
(391.10,Null,1000),
(120.10,7500,Null),

(600.10,Null,6700),
(391.10,Null,1200),
(100.10,7900,Null);

SELECT HSPKOD, SUM (isnull(Borc,0)) - sum (isnull(Alacak,0)) As Bakiye
FROM table1 where HSPKOD like '100%' or HSPKOD like '600%' or HSPKOD like '120%'
GROUP BY HSPKOD


Şuan sonuç şöyle geliyor.

HSPKOD Bakiye

100.10 15400
120.10 7500
600.10 -19700

İSTEKLERİM

1.isteğim, üsteki sonucun yanına birde "Kümülatif Bakiye" sütunu olacak.

HSPKOD Bakiye Kümülatif Bakiye

100.10 15400 3200
120.10 7500 3200
600.10 -19700 3200

2.isteğim, kümülatif bakiye şartta bağlamak . Örneğin Kümülatif bakiye <5000 ise "Şarta uygun değildir." desin. Sanırım onuda yeni bir sütuna yazdıracağız.

HSPKOD Bakiye Kümülatif_Bakiye Sonuç

100.10 15400 3200 Şarta Uygun Değildir.
120.10 7500 3200 Şarta Uygun Değildir.
600.10 -19700 3200 Şarta Uygun Değildir.

Şimdiden teşekkür ederim.
 
Katılım
5 Nisan 2015
Mesajlar
16
Excel Vers. ve Dili
2007
Sonuca ulaştım... :)Yazılımcı değilim, bu kodlar işlemciyi yorar mı bilemem.

Benim gibi yeniler için aşamalarımı yazayım:

1.Aşama
--HSPKOD ve Bakiye listeledim.
SELECT HSPKOD, SUM (isnull(Borc,0)) - sum (isnull(Alacak,0)) As Bakiye
FROM table1 where HSPKOD like '100%' or HSPKOD like '600%' or HSPKOD like '120%'
GROUP BY HSPKOD

2. Aşama kumulatifi ekledim
-- HSPKOD, BAKIYE, Kumulatif
SELECT Hspkod, SUM(ISNULL(Borc, 0)) - SUM(ISNULL(Alacak, 0)) AS Bakiye,
(SELECT sum(bakiye) FROM (SELECT Hspkod, SUM(ISNULL(Borc, 0)) - SUM(ISNULL(Alacak, 0)) AS Bakiye
FROM table1 WHERE Hspkod LIKE '100%' OR Hspkod LIKE '600%' OR Hspkod LIKE '120%'
GROUP BY Hspkod)AS table2) AS Kumulatif
FROM table1 WHERE Hspkod LIKE '100%' OR Hspkod LIKE '600%' OR Hspkod LIKE '120%'
GROUP BY Hspkod

3. Aşama
--Şartımız lazım olan tutarı (3200) buldum
select sum(bakiye) from (
SELECT HSPKOD, SUM(ISNULL(Borc, 0)) - SUM(ISNULL(Alacak, 0)) AS Bakiye
FROM table1 WHERE HSPKOD LIKE '100%' OR HSPKOD LIKE '600%' OR HSPKOD LIKE '120%'
GROUP BY HSPKOD)as table2

4.Aşama
-- HSPKOD, BAKIYE, Kumulatif yanına şartı ekledim
SELECT Hspkod, SUM(ISNULL(Borc, 0)) - SUM(ISNULL(Alacak, 0)) AS Bakiye,
(SELECT sum(bakiye) FROM (SELECT Hspkod, SUM(ISNULL(Borc, 0)) - SUM(ISNULL(Alacak, 0)) AS Bakiye
FROM table1 WHERE Hspkod LIKE '100%' OR Hspkod LIKE '600%' OR Hspkod LIKE '120%'
GROUP BY Hspkod)AS table2) AS Kumulatif, CASE WHEN (select sum(bakiye) from (
SELECT HSPKOD, SUM(ISNULL(Borc, 0)) - SUM(ISNULL(Alacak, 0)) AS Bakiye
FROM table1 WHERE HSPKOD LIKE '100%' OR HSPKOD LIKE '600%' OR HSPKOD LIKE '120%'
GROUP BY HSPKOD)as table2)<5000 Then 'Şarta Uygun Değildir.' ELSE 'Şarta Uygundur.' END AS Uygunmu
From table1 WHERE Hspkod LIKE '100%' OR Hspkod LIKE '600%' OR Hspkod LIKE '120%'
GROUP BY Hspkod
 
Üst