none
sorgu hk RRS feed

  • Soru

  • select ID,TARIH,HESAP,ISLEM,ACIKLAMA,BORC,ALACAK, Sum(BORC - ALACAK) OVER(ORDER BY ID) AS BAKIYE FROM Table_KS WHERE  HESAP='' AND DOVIZ=''
    
    _________
    yukardaki sorguya,
    
    (between)  2 tarih arasını eklemek istyorz
    yardın lütfen,
    27 Temmuz 2018 Cuma 14:41

Yanıtlar

  • SQL ifadelerde parametre kullanmanızı öneririm. 

    select ID,TARIH,HESAP,ISLEM,ACIKLAMA,BORC,ALACAK, Sum(BORC - ALACAK) OVER(ORDER BY ID) AS BAKIYE FROM Table_KS WHERE  HESAP='' AND DOVIZ='' AND TARIH BETWEEN CAST('2017-01-01 00:00:00' AS datetime) AND CAST('2017-12-31 23:59:59' AS datetime)


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak Öneren aksakalll 28 Temmuz 2018 Cumartesi 01:49
    • Yanıt Olarak İşaretleyen canleveent 28 Temmuz 2018 Cumartesi 07:02
    27 Temmuz 2018 Cuma 19:40
  • SELECT 
        ID, TARIH, HESAP, ISLEM, ACIKLAMA, BORC, ALACAK, 
        SUM(BORC - ALACAK) OVER (ORDER BY ID) AS BAKIYE 
    FROM 
        Table_KS 
    WHERE  
        HESAP='' AND DOVIZ='' AND 
        TARIH BETWEEN CAST('2017-01-01 00:00:00' AS datetime) 
        AND CAST('2017-12-31 23:59:59' AS datetime) 
    
    UNION
    
    SELECT
        0, CAST('2017-01-01 00:00:00' AS datetime), '', 'BAKIYE', 
        'ÖNCEKİ DÖNEM', SUM(BORC), SUM(ALACAK), 
        SUM(BORC-ALACAK) AS BAKIYE
    FROM 
        Table_KS
    WHERE
        HESAP='' AND DOVIZ='' AND 
        TARIH < CAST('2017-01-01 00:00:00' AS datetime)


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen canleveent 28 Temmuz 2018 Cumartesi 10:50
    28 Temmuz 2018 Cumartesi 10:27
  • Sadece 4 parametre var. Hesap, Doviz, İlkTarih ve SonTarih.

    Kullandığınız konum fark etmez. Stored Procedure için örnek,

    CREATE PROCEDURE bakiyeler 
        @hesap NVARCHAR(100),
        @doviz NVARCHAR(3),
        @ilkTarih DATETIME,
        @sonTarih DATETIME
    AS
    BEGIN
        SELECT 
    	ID, TARIH, HESAP, ISLEM, ACIKLAMA, BORC, ALACAK, SUM(BORC - ALACAK) OVER (ORDER BY ID) AS BAKIYE 
        FROM 
    	Table_KS 
        WHERE  
    	HESAP=@hesap AND DOVIZ=@doviz AND TARIH BETWEEN @ilkTarih AND @sonTarih 
        UNION
        SELECT
    	0, @ilkTarih, @hesap, 'BAKIYE', 'ÖNCEKİ DÖNEM', SUM(BORC), SUM(ALACAK), SUM(BORC-ALACAK) AS BAKIYE
        FROM 
    	Table_KS
        WHERE
    	HESAP=@hesap AND DOVIZ=@doviz AND TARIH < @ilkTarih
    END

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Düzenleyen MuratAKSARAY 28 Temmuz 2018 Cumartesi 11:17
    • Yanıt Olarak İşaretleyen canleveent 28 Temmuz 2018 Cumartesi 11:38
    28 Temmuz 2018 Cumartesi 11:16
  • CREATE PROCEDURE bakiyeler 
        @hesap NVARCHAR(100),
        @doviz NVARCHAR(3),
        @ilkTarih DATETIME,
        @sonTarih DATETIME
    AS
    BEGIN
        SELECT * FROM    
        (SELECT 
    	ID, TARIH, HESAP, ISLEM, ACIKLAMA, BORC, ALACAK, SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) 
    	OVER (ORDER BY TARIH ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS BAKIYE 
        FROM 
    	Table_KS 
    
        UNION
        SELECT
    	0, @ilkTarih, @hesap, 'BAKIYE', 'ÖNCEKİ DÖNEM', SUM(COALESCE(BORC, 0)), SUM(COALESCE(ALACAK, 0)), SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) AS BAKIYE
        FROM 
    	Table_KS
        WHERE
    	HESAP=@hesap AND DOVIZ=@doviz AND TARIH < @ilkTarih)
        WHERE  
    	TARIH BETWEEN @ilkTarih AND @sonTarih 
    END

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    • Düzenleyen MuratAKSARAY 3 Ağustos 2018 Cuma 07:00
    • Yanıt Olarak İşaretleyen canleveent 3 Ağustos 2018 Cuma 08:17
    3 Ağustos 2018 Cuma 07:00
  • COALESCE(SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)), 0) AS BAKIYE
    Aslında bunun yerine veriyi görüntülediğiniz yerde de sorunu çözebilirdiniz.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen canleveent 13 Ağustos 2018 Pazartesi 06:28
    11 Ağustos 2018 Cumartesi 16:51

Tüm Yanıtlar

  • SQL ifadelerde parametre kullanmanızı öneririm. 

    select ID,TARIH,HESAP,ISLEM,ACIKLAMA,BORC,ALACAK, Sum(BORC - ALACAK) OVER(ORDER BY ID) AS BAKIYE FROM Table_KS WHERE  HESAP='' AND DOVIZ='' AND TARIH BETWEEN CAST('2017-01-01 00:00:00' AS datetime) AND CAST('2017-12-31 23:59:59' AS datetime)


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak Öneren aksakalll 28 Temmuz 2018 Cumartesi 01:49
    • Yanıt Olarak İşaretleyen canleveent 28 Temmuz 2018 Cumartesi 07:02
    27 Temmuz 2018 Cuma 19:40
  • peki,hocam bildiğiniz üzere, bu ilk satırdan başlayarak, bakiyeye işlem yapıyor. seçilen ilk tarihten öncesine "devir bakiye (ilk satıra) "  miktarı yazdırmam lazım, mümkünse buna yardım lütfen, böyle anlamı olmayacak,

    • Düzenleyen canleveent 28 Temmuz 2018 Cumartesi 08:23
    28 Temmuz 2018 Cumartesi 07:08
  • SELECT 
        ID, TARIH, HESAP, ISLEM, ACIKLAMA, BORC, ALACAK, 
        SUM(BORC - ALACAK) OVER (ORDER BY ID) AS BAKIYE 
    FROM 
        Table_KS 
    WHERE  
        HESAP='' AND DOVIZ='' AND 
        TARIH BETWEEN CAST('2017-01-01 00:00:00' AS datetime) 
        AND CAST('2017-12-31 23:59:59' AS datetime) 
    
    UNION
    
    SELECT
        0, CAST('2017-01-01 00:00:00' AS datetime), '', 'BAKIYE', 
        'ÖNCEKİ DÖNEM', SUM(BORC), SUM(ALACAK), 
        SUM(BORC-ALACAK) AS BAKIYE
    FROM 
        Table_KS
    WHERE
        HESAP='' AND DOVIZ='' AND 
        TARIH < CAST('2017-01-01 00:00:00' AS datetime)


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen canleveent 28 Temmuz 2018 Cumartesi 10:50
    28 Temmuz 2018 Cumartesi 10:27
  • :)

    v.s. tarafına parametreyle  yazacam çok uzun, prosedurde olunca parametreyi ayarlayamam,

    bunun için bir öneriniz olur mu? yoksa bu haliyle kullanalım mı,

    28 Temmuz 2018 Cumartesi 10:50
  • Sadece 4 parametre var. Hesap, Doviz, İlkTarih ve SonTarih.

    Kullandığınız konum fark etmez. Stored Procedure için örnek,

    CREATE PROCEDURE bakiyeler 
        @hesap NVARCHAR(100),
        @doviz NVARCHAR(3),
        @ilkTarih DATETIME,
        @sonTarih DATETIME
    AS
    BEGIN
        SELECT 
    	ID, TARIH, HESAP, ISLEM, ACIKLAMA, BORC, ALACAK, SUM(BORC - ALACAK) OVER (ORDER BY ID) AS BAKIYE 
        FROM 
    	Table_KS 
        WHERE  
    	HESAP=@hesap AND DOVIZ=@doviz AND TARIH BETWEEN @ilkTarih AND @sonTarih 
        UNION
        SELECT
    	0, @ilkTarih, @hesap, 'BAKIYE', 'ÖNCEKİ DÖNEM', SUM(BORC), SUM(ALACAK), SUM(BORC-ALACAK) AS BAKIYE
        FROM 
    	Table_KS
        WHERE
    	HESAP=@hesap AND DOVIZ=@doviz AND TARIH < @ilkTarih
    END

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Düzenleyen MuratAKSARAY 28 Temmuz 2018 Cumartesi 11:17
    • Yanıt Olarak İşaretleyen canleveent 28 Temmuz 2018 Cumartesi 11:38
    28 Temmuz 2018 Cumartesi 11:16

  • bakiyeye sonuçlar hatalı geliyor, hocam, bunu buradan değilde c# tarafında gridcontrolde mi yapilmali, 




    • Düzenleyen canleveent 30 Temmuz 2018 Pazartesi 17:04
    28 Temmuz 2018 Cumartesi 13:28
  • Tablo yapınızı ve ne yapmaya çalıştığınızı bilmediğim için bir öneride bulunamıyorum.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    28 Temmuz 2018 Cumartesi 19:32
  • Selamlar,

    Alternatif Sql 2012 ve üstü sürümlerde geçerli aşağıdaki sorguyu kullana bilir siniz.

    DECLARE @ILKTARIH VARCHAR(11)
    DECLARE @SONTARIH VARCHAR(11)

    /* SANAL TABLO OLUŞTURMA */
    DECLARE @CARIHAREKET TABLE(LOGICALREF INT identity(1,1) primary key,CARI INT,TARIH DATETIME,ISLEM VARCHAR(20),ACIKLAMA VARCHAR(20),BORC FLOAT,ALACAK FLOAT)
    INSERT INTO @CARIHAREKET (CARI,TARIH,ISLEM,ACIKLAMA,BORC,ALACAK)

    SELECT '1',CONVERT(DATETIME,'01.01.2018',104),'SATIŞ FATURASI','DD','100.00','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'01.01.2018',104),'SATIŞ FATURASI','DD','200.00','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'15.01.2018',104),'SATIŞ FATURASI','DD','25.00','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'16.01.2018',104),'SATIŞ FATURASI','DD','35.00','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'17.01.2018',104),'NAKİT TAHSİLAT','DD','0','250' UNION ALL
    SELECT '2',CONVERT(DATETIME,'01.01.2018',104),'SATIŞ FATURASI','DD','250','0' UNION ALL
    SELECT '2',CONVERT(DATETIME,'15.01.2018',104),'SATIŞ FATURASI','DD','100.00','0' UNION ALL
    SELECT '2',CONVERT(DATETIME,'15.01.2018',104),'SATIŞ FATURASI','DD','350','0' UNION ALL
    SELECT '2',CONVERT(DATETIME,'01.01.2018',104),'ÇEK GİRİŞİ','DD','0','300' 

    /* SQL 2012 VE ÜSTÜ ÇALIŞIR */

    SELECT *,SUM(BORC-ALACAK) OVER(PARTITION BY CARI ORDER BY TARIH,LOGICALREF) BAKIYE FROM  @CARIHAREKET



    • Düzenleyen Vedat ÖZER 2 Ağustos 2018 Perşembe 03:46
    2 Ağustos 2018 Perşembe 03:31
  • CREATE PROCEDURE bakiyeler 
        @hesap NVARCHAR(100),
        @doviz NVARCHAR(3),
        @ilkTarih DATETIME,
        @sonTarih DATETIME
    AS
    BEGIN
        SELECT 
    	ID, TARIH, HESAP, ISLEM, ACIKLAMA, BORC, ALACAK, SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) 
    	OVER (PARTITION BY ID ORDER BY TARIH ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS BAKIYE 
        FROM 
    	Table_KS 
        WHERE  
    	HESAP=@hesap AND DOVIZ=@doviz AND TARIH BETWEEN @ilkTarih AND @sonTarih 
        UNION
        SELECT
    	0, @ilkTarih, @hesap, 'BAKIYE', 'ÖNCEKİ DÖNEM', SUM(COALESCE(BORC, 0)), SUM(COALESCE(ALACAK, 0)), SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) AS BAKIYE
        FROM 
    	Table_KS
        WHERE
    	HESAP=@hesap AND DOVIZ=@doviz AND TARIH < @ilkTarih
    END

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak Öneren Vedat ÖZER 2 Ağustos 2018 Perşembe 12:44
    2 Ağustos 2018 Perşembe 07:42
  • Selamlar,

    Uzun zamandır UNBOUNDED PRECEDING AND CURRENT ROW kodun işlevini merak ediyordum. Sayenizde öğrendim teşekkür ederim :)

    2 Ağustos 2018 Perşembe 12:46
  • Selamlar,

    Uzun zamandır UNBOUNDED PRECEDING AND CURRENT ROW kodun işlevini merak ediyordum. Sayenizde öğrendim teşekkür ederim :)

    Geri bildiriminiz için teşekkür ederim. Umarım siz de başkalarına öğretirsiniz.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    2 Ağustos 2018 Perşembe 13:11
  • Mutlaka .. Sql'de yürüyen bakiye konusunda 2012 gerisinde Cursor ve Update ile çözümlere gidiyorum 2012 bu fonksiyon çok işime yaradı.
    2 Ağustos 2018 Perşembe 13:38
  • ne yazıkkı sonuca ulaşamıyoruz, sonuç resimdeki gibi , olmalı, ilk satırdan bakiye alıp devam etmeli,

    SELECT 
    	ID, TARIH, HESAP, ISLEM, ACIKLAMA, BORC, ALACAK, SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) 
    	OVER (PARTITION BY ID ORDER BY TARIH ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS BAKIYE 
        FROM 
    	Table_KS 
        WHERE  
    	TARIH BETWEEN '2018-07-01' AND '2018-07-30' 
        UNION
        SELECT
    	0, '2018-07-01', '', 'BAKIYE', 'ÖNCEKİ DÖNEM', SUM(COALESCE(BORC, 0)), SUM(COALESCE(ALACAK, 0)), 
    	SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) AS BAKIYE
        FROM 
    	Table_KS
        WHERE
    	TARIH < '2018-07-01'

    2 Ağustos 2018 Perşembe 15:23
  • ID değerini dikkate aldığımız için bu sonuç normal. PARTITION BY ID ifadesini silin istediğiniz sonucu alırsınız.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    2 Ağustos 2018 Perşembe 15:32
  • Selamlar,

    Partıtıon By fonksiyonu birden fazla cariye istinaden yürüyen bakiye yaparsanız dahil edersiniz.

    Kodu aşağıdaki şekilde değiştirip deneyin.

    SELECT 
    ID, TARIH, HESAP, ISLEM, ACIKLAMA, BORC, ALACAK, SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) 
    OVER (ORDER BY TARIH ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS BAKIYE 
        FROM 
    Table_KS 
        WHERE  
    TARIH BETWEEN '2018-07-01' AND '2018-07-30' 
        UNION
        SELECT
    0, '2018-07-01', '', 'BAKIYE', 'ÖNCEKİ DÖNEM', SUM(COALESCE(BORC, 0)), SUM(COALESCE(ALACAK, 0)), 
    SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) AS BAKIYE
        FROM 
    Table_KS
        WHERE
    TARIH < '2018-07-01'

    2 Ağustos 2018 Perşembe 15:34
  • malesef, yukardaki gibi,

    ilk satırı işleme alması için join yapmak gerekiyor galiba ama nasıl yapılacağını malesef bilmiyorum,


    sanal a dönüştürerek yani,
    • Düzenleyen canleveent 2 Ağustos 2018 Perşembe 15:44
    2 Ağustos 2018 Perşembe 15:43
  • Selamlar,

    Sanal tabloyu oluşturdum kontrol edin 

    DECLARE @ILKTARIH VARCHAR(11)
    DECLARE @SONTARIH VARCHAR(11)

    SET @ILKTARIH  = '15.01.2018'
    SET @SONTARIH  = '31.12.2018'


    DECLARE @CARIHAREKET TABLE(LOGICALREF INT identity(1,1) primary key,CARI INT,TARIH DATETIME,ISLEM VARCHAR(20),ACIKLAMA VARCHAR(20),BORC FLOAT,ALACAK FLOAT)
    INSERT INTO @CARIHAREKET (CARI,TARIH,ISLEM,ACIKLAMA,BORC,ALACAK)

    SELECT '1',CONVERT(DATETIME,'01.01.2018',104),'SATIŞ FATURASI','DD','100.00','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'01.01.2018',104),'SATIŞ FATURASI','DD','200.00','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'15.01.2018',104),'SATIŞ FATURASI','DD','25.00','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'16.01.2018',104),'SATIŞ FATURASI','DD','35.00','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'17.01.2018',104),'NAKİT TAHSİLAT','DD','0','250' UNION ALL
    SELECT '1',CONVERT(DATETIME,'18.01.2018',104),'SATIŞ FATURASI','DD','250','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'19.01.2018',104),'SATIŞ FATURASI','DD','100.00','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'20.01.2018',104),'SATIŞ FATURASI','DD','350','0' UNION ALL
    SELECT '1',CONVERT(DATETIME,'21.01.2018',104),'ÇEK GİRİŞİ','DD','0','300' 


    SELECT *,SUM(ISNULL(BORC,0)-ISNULL(ALACAK,0)) OVER(ORDER BY TARIH ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) BAKIYE  FROM (
    SELECT CARI,NULL TARIH,NULL ISLEM,'DEVREDEN BAKIYE' ACIKLAMA,SUM(BORC) BORC,SUM(ALACAK) ALACAK
    FROM  @CARIHAREKET
    WHERE TARIH < CONVERT(DATETIME,@ILKTARIH,104)
    GROUP BY CARI 
    UNION ALL
    SELECT CARI,TARIH,ISLEM,ACIKLAMA,BORC,ALACAK
    FROM  @CARIHAREKET
    WHERE TARIH BETWEEN CONVERT(DATETIME,@ILKTARIH,104) AND CONVERT(DATETIME,@SONTARIH,104)) AS VEDAT






    2 Ağustos 2018 Perşembe 15:57
  • Bununla mevcut veriyi alamazsınız
    2 Ağustos 2018 Perşembe 18:08
  • CREATE PROCEDURE bakiyeler 
        @hesap NVARCHAR(100),
        @doviz NVARCHAR(3),
        @ilkTarih DATETIME,
        @sonTarih DATETIME
    AS
    BEGIN
        SELECT * FROM    
        (SELECT 
    	ID, TARIH, HESAP, ISLEM, ACIKLAMA, BORC, ALACAK, SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) 
    	OVER (ORDER BY TARIH ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS BAKIYE 
        FROM 
    	Table_KS 
    
        UNION
        SELECT
    	0, @ilkTarih, @hesap, 'BAKIYE', 'ÖNCEKİ DÖNEM', SUM(COALESCE(BORC, 0)), SUM(COALESCE(ALACAK, 0)), SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) AS BAKIYE
        FROM 
    	Table_KS
        WHERE
    	HESAP=@hesap AND DOVIZ=@doviz AND TARIH < @ilkTarih)
        WHERE  
    	TARIH BETWEEN @ilkTarih AND @sonTarih 
    END

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    • Düzenleyen MuratAKSARAY 3 Ağustos 2018 Cuma 07:00
    • Yanıt Olarak İşaretleyen canleveent 3 Ağustos 2018 Cuma 08:17
    3 Ağustos 2018 Cuma 07:00
  • projede çok katkınız oldu, size minnettarız, teşekkürler
    3 Ağustos 2018 Cuma 08:17
  • mrb,

    yeni farkettim bir şey oldu,

    line19-20 de where hesap ve dovız işleme girmiyor,

    WHERE HESAP='MERKEZ KASA' AND DOVIZ='TRY' AND TARIH < '2018-07-02')

    sorgu sonucu,


    • Düzenleyen canleveent 4 Ağustos 2018 Cumartesi 10:46
    4 Ağustos 2018 Cumartesi 10:31
  • Hesap alanı tarihle kıyaslanmış görünüyor.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    4 Ağustos 2018 Cumartesi 10:43
  • malesef,

    WHERE
    	HESAP=@hesap AND DOVIZ=@doviz

    bu parametreler için şartımızı uygulayamıyoruz,

    tüm verileri çekiyor,


    • Düzenleyen canleveent 10 Ağustos 2018 Cuma 14:26
    10 Ağustos 2018 Cuma 14:21
  • CREATE PROCEDURE bakiyeler @hesap NVARCHAR(100), @doviz NVARCHAR(3), @ilkTarih DATETIME, @sonTarih DATETIME AS BEGIN SELECT * FROM (SELECT ID, DOVIZ,TARIH, HESAP, ISLEM, ACIKLAMA, BORC, ALACAK, SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) OVER (ORDER BY TARIH ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS BAKIYE FROM Table_KS UNION SELECT 0, '', @ilkTarih, @hesap, 'BAKIYE', 'ÖNCEKİ DÖNEM', SUM(COALESCE(BORC, 0)), SUM(COALESCE(ALACAK, 0)), SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)) AS BAKIYE FROM Table_KS WHERE HESAP=@hesap AND DOVIZ=@doviz AND TARIH < @ilkTarih) Table_KS

    WHERE TARIH BETWEEN @ilkTarih AND @sonTarih END

    2 alanda düzeltme yaptım,

    bu tablo verileri, c# a çekilip, orada bu sorgu sonucundaki şekilde, gridcontrole eklenebilir mi? sorgu sonucu




    • Düzenleyen canleveent 10 Ağustos 2018 Cuma 15:57
    10 Ağustos 2018 Cuma 14:38
  • Sorunuzun son halini "Yeni Bir Soru Olarak" sormanız halinde daha fazla kişi yanıtlayacaktır.

    Başarılar...


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    10 Ağustos 2018 Cuma 15:27
  • çözüldü,

    buna şuan inanamıyorum,

    size şuana kadar olan desteğiniz için tekrar tşk ederiz,

    • Düzenleyen canleveent 11 Ağustos 2018 Cumartesi 11:21
    10 Ağustos 2018 Cuma 15:57
  • hocam, parametredi ilktarihte hareket yoksa bakiye resimdeki gibi null oluyor. bunu "0" değeri atanabilir mi?


    • Düzenleyen canleveent 11 Ağustos 2018 Cumartesi 12:14
    11 Ağustos 2018 Cumartesi 12:14
  • hocam, parametredi ilktarihte hareket yoksa bakiye resimdeki gibi null oluyor. bunu "0" değeri atanabilir mi?


    COALESCE  fonksiyonu bu işe yaramaktadır COALESCE( null , 0 )  geriye 0 döner COALESCE( 2 , 0 ) geriye 2 döner. Yukarıdaki sorguda bir kaç yerde kullanılmış. 

    www.cihanyakar.com

    11 Ağustos 2018 Cumartesi 12:28
  • Evet ama, buna rağmen null geliyor,

    Bakiyeye uygulanmadığı için olabilir mi,

    • Düzenleyen canleveent 11 Ağustos 2018 Cumartesi 13:04
    11 Ağustos 2018 Cumartesi 12:34
  • Evet o kolonun tamamına yazılmamış. Bu sebeple oluyor. 

    www.cihanyakar.com

    11 Ağustos 2018 Cumartesi 13:37
  • yazmak istiyorum, hata veriyr,

    nasıl yapacağımıda bilemedim,
    • Düzenleyen canleveent 11 Ağustos 2018 Cumartesi 13:58
    11 Ağustos 2018 Cumartesi 13:58
  • COALESCE(SUM(COALESCE(BORC, 0) - COALESCE(ALACAK, 0)), 0) AS BAKIYE
    Aslında bunun yerine veriyi görüntülediğiniz yerde de sorunu çözebilirdiniz.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen canleveent 13 Ağustos 2018 Pazartesi 06:28
    11 Ağustos 2018 Cumartesi 16:51