Excel Forum

Excel Forum (http://www.excel.web.tr/index.php)
-   SQL (http://www.excel.web.tr/forumdisplay.php?f=66)
-   -   Toplamların Toplamını Bulmak (http://www.excel.web.tr/showthread.php?t=164137)

Tahirsalt 17-05-2017 23:33

Toplamların Toplamını Bulmak
 
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.

Tahirsalt 20-05-2017 01:06

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


Saat 21:39

Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.