Şimdi Ara

SQL Bakiye Alma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
14
Cevap
0
Favori
989
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba Arkadaşlar,

    SQL'de bakiye almak istiyorum fakat sorgumu çalıştırdığımda aşağıda ki gibi bir hata alıyorum. Hatayı nasıl kapatabilirim.

    Sorgum;

    SELECT
    [ID],
    [DATE_],
    [Cari Kodu],
    [Müşteri Ünvanı],
    [Adres1],
    [Adres2],
    [Vergi No],
    [Vergi Dairesi],
    [İşlem Tarihi],
    [İşlem No],
    [İşlem Türü],
    [Borç],
    [Alacak],
    [BAKIYE]=(SELECT Sum(G.[DEBIT] - G.[CREDIT]) OVER (ORDER BY G.[DATE_], G.[LOGICALREF]) FROM LV_001_01_CLEKSTRE G INNER JOIN LG_001_CLCARD CL ON CL.LOGICALREF=G.CLIENTREF GROUP BY G.[LOGICALREF])


    FROM
    (
    SELECT
    [ID]=CLEKSTRE.LOGICALREF,
    [DATE_]=CLEKSTRE.DATE_,
    [Cari Kodu]=CLCARD.CODE,
    [Müşteri Ünvanı]=CLCARD.DEFINITION_,
    [Adres1]=CLCARD.ADDR1,
    [Adres2]=CLCARD.ADDR2,
    [Vergi No]=CLCARD.TAXNR,
    [Vergi Dairesi]=CLCARD.TAXOFFICE,
    [İşlem Tarihi]=CLEKSTRE.DATE_,
    [İşlem No]=CLEKSTRE.TRANNO,
    [İşlem Türü]=CASE WHEN CLEKSTRE.TRCODE=31 AND CLEKSTRE.MODULENR=4 THEN 'Satınalma Faturası'
    WHEN CLEKSTRE.TRCODE=34 AND CLEKSTRE.MODULENR=4 THEN 'Alınan Hizmet Faturası'
    WHEN CLEKSTRE.TRCODE=36 AND CLEKSTRE.MODULENR=4 THEN 'Satınalma İade Faturası'
    WHEN CLEKSTRE.TRCODE=43 AND CLEKSTRE.MODULENR=4 THEN 'Satınalma Fiyat Farkı Faturası'
    WHEN CLEKSTRE.TRCODE=56 AND CLEKSTRE.MODULENR=4 THEN 'Müstahsil Makbuzu'
    WHEN CLEKSTRE.TRCODE=38 AND CLEKSTRE.MODULENR=4 THEN 'Toptan Satış Faturası'
    WHEN CLEKSTRE.TRCODE=37 AND CLEKSTRE.MODULENR=4 THEN 'Perakende Satış Faturası'
    WHEN CLEKSTRE.TRCODE=32 AND CLEKSTRE.MODULENR=4 THEN 'Perakende Satış İade Faturası'
    WHEN CLEKSTRE.TRCODE=33 AND CLEKSTRE.MODULENR=4 THEN 'Toptan Satış İade Faturası'
    WHEN CLEKSTRE.TRCODE=39 AND CLEKSTRE.MODULENR=4 THEN 'Verilen Hizmet Faturası'
    WHEN CLEKSTRE.TRCODE=44 AND CLEKSTRE.MODULENR=4 THEN 'Satış Fiyat Farkı Faturası'
    WHEN CLEKSTRE.TRCODE=1 AND CLEKSTRE.MODULENR=5 THEN 'Nakit Tahsilat'
    WHEN CLEKSTRE.TRCODE=2 AND CLEKSTRE.MODULENR=5 THEN 'Nakit Ödeme'
    WHEN CLEKSTRE.TRCODE=3 AND CLEKSTRE.MODULENR=5 THEN 'Borç Dekontu'
    WHEN CLEKSTRE.TRCODE=4 AND CLEKSTRE.MODULENR=5 THEN 'Alacak Dekontu'
    WHEN CLEKSTRE.TRCODE=5 AND CLEKSTRE.MODULENR=5 THEN 'Virman Fişi'
    WHEN CLEKSTRE.TRCODE=14 AND CLEKSTRE.MODULENR=5 THEN 'Açılış Fişi'
    WHEN CLEKSTRE.TRCODE=41 AND CLEKSTRE.MODULENR=4 THEN 'Verilen Vade Farkı Faturası'
    WHEN CLEKSTRE.TRCODE=42 AND CLEKSTRE.MODULENR=4 THEN 'Alınan Vade Farkı Faturası'
    WHEN CLEKSTRE.TRCODE=45 AND CLEKSTRE.MODULENR=5 THEN 'Verilen Serbest Meslek Makbuzu'
    WHEN CLEKSTRE.TRCODE=46 AND CLEKSTRE.MODULENR=5 THEN 'Alınan Serbest Meslek Makbuzu'
    WHEN CLEKSTRE.TRCODE=70 AND CLEKSTRE.MODULENR=5 THEN 'Kredi Kart Fişi'
    WHEN CLEKSTRE.TRCODE=71 AND CLEKSTRE.MODULENR=5 THEN 'Kredi Kart İade Fişi'
    WHEN CLEKSTRE.TRCODE=72 AND CLEKSTRE.MODULENR=5 THEN 'Firma Kredi Kart Fişi'
    WHEN CLEKSTRE.TRCODE=73 AND CLEKSTRE.MODULENR=5 THEN 'Firma Kredi Kart İade Fişi'
    WHEN CLEKSTRE.TRCODE=61 AND CLEKSTRE.MODULENR=6 THEN 'Çek Girişi'
    WHEN CLEKSTRE.TRCODE=62 AND CLEKSTRE.MODULENR=6 THEN 'Senet Girişi'
    WHEN CLEKSTRE.TRCODE=63 AND CLEKSTRE.MODULENR=6 THEN 'Çek Çıkış'
    WHEN CLEKSTRE.TRCODE=64 AND CLEKSTRE.MODULENR=6 THEN 'Senet Çıkış'
    WHEN CLEKSTRE.TRCODE=3 AND CLEKSTRE.MODULENR=61 THEN 'Müşteriye İade Edilen Çek'
    WHEN CLEKSTRE.TRCODE=1 AND CLEKSTRE.MODULENR=10 THEN 'Kasa Nakit Tahsilat'
    WHEN CLEKSTRE.TRCODE=2 AND CLEKSTRE.MODULENR=10 THEN 'Kasa Nakit Ödeme'
    WHEN CLEKSTRE.TRCODE=20 AND CLEKSTRE.MODULENR=7 THEN 'Gelen Havale'
    WHEN CLEKSTRE.TRCODE=21 AND CLEKSTRE.MODULENR=7 THEN 'Gönderilen Havale'
    WHEN CLEKSTRE.TRCODE=81 AND CLEKSTRE.MODULENR=3 THEN 'Alınan Sipariş'
    WHEN CLEKSTRE.TRCODE=82 AND CLEKSTRE.MODULENR=3 THEN 'Verilen Sipariş' ELSE 'BOŞ' END,
    [Borç]=CLEKSTRE.DEBIT,
    [Alacak]=CLEKSTRE.CREDIT
    --[BAKIYE]=(SELECT Sum(G.[DEBIT] - G.[CREDIT]) OVER (ORDER BY G.[DATE_], G.[LOGICALREF]) FROM LV_001_01_CLEKSTRE G LEFT JOIN LG_001_CLCARD CL ON CL.LOGICALREF=G.CLIENTREF)



    FROM
    LV_001_01_CLEKSTRE CLEKSTRE
    LEFT OUTER JOIN LG_001_CLCARD CLCARD ON CLCARD.LOGICALREF=CLEKSTRE.CLIENTREF)TEMP GROUP BY [ID],[DATE_],[Cari Kodu],[Müşteri Ünvanı],[Adres1],[Adres2],
    [Vergi No],[Vergi Dairesi],[İşlem Tarihi],[İşlem No],[İşlem Türü],[Borç],[Alacak]

    --SELECT * FROM LV_001_01_CLEKSTRE

    --SELECT Sum([DEBIT] - [CREDIT]) OVER (ORDER BY [DATE_], [LOGICALREF]) AS [BAKIYE] FROM LV_001_01_CLEKSTRE
    --(SELECT Sum([DEBIT]) - SUM([CREDIT]) OVER (ORDER BY [DATE_], [LOGICALREF]) AS [BAKIYE] FROM LV_001_01_CLEKSTRE WHERE CLIENTREF=CLCARD.LOGICALREF)



    Aldığım Hata:

    [BAKIYE]=(SELECT Sum(G.[DEBIT] - G.[CREDIT]) OVER (ORDER BY G.[DATE_], G.[LOGICALREF]) FROM LV_001_01_CLEKSTRE G INNER JOIN LG_001_CLCARD CL ON CL.LOGICALREF=G.CLIENTREF GROUP BY G.[LOGICALREF])







  • [İşlem Tarihi],
    [İşlem No],
    [İşlem Türü],
    [Borç],
    [Alacak],
    --------------- Bu kısımdan sonrası içim

    (SELECT Sum(G.[DEBIT] - G.[CREDIT]) OVER (ORDER BY G.[DATE_], G.[LOGICALREF]) FROM LV_001_01_CLEKSTRE G INNER JOIN lg_001_CLCARD CL ON CL.LOGICALREF=G.CLIENTREF GROUP BY G.[LOGICALREF]) As BAKIYE

    şeklinde denermisin



    < Bu mesaj bu kişi tarafından değiştirildi Hakan5434 -- 8 Ekim 2015; 10:35:13 >
  • Hakan5434 H kullanıcısına yanıt
    Malesef olmadı.
  • LG_001_CLCARD AS CL

    LG_001_CLCARD =>Tablo olduğu düşünerek
  • Hakan5434 H kullanıcısına yanıt
    Aynı hatayı aldım.
  • son yazdığım durum diğer tablolar içinde geçerli onlarada uyguladın mı.
    ayrıca sql cümlesinin kedisi nasıl hata mesajı oluyor kısmı anlayamadım. varsa ki hata var diyorsun daha farklı bir hata mesajı dönmeli.
  • Hakan5434 H kullanıcısına yanıt
    Dediğiniz gibi uyguladım Msg 8120, Level 16, State 1, Line 15
    Column 'LV_001_01_CLEKSTRE.DATE_' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. hatasını alıyorum.
  • quote:

    Orijinalden alıntı: maxcoder7

    Dediğiniz gibi uyguladım Msg 8120, Level 16, State 1, Line 15
    Column 'LV_001_01_CLEKSTRE.DATE_' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. hatasını alıyorum.

    'LV_001_01_CLEKSTRE.DATE_ kolonunu group by a eklemeni istiyor. ve benzer şekilde başka kolonlar içinde isterse yap.
  • Select ten sonra yazdığın herşeyi group by da yazıp dener misin id gibi

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: teornek

    Select ten sonra yazdığın herşeyi group by da yazıp dener misin id gibi

    Merhaba, denedim malesef yine olmadı.
  • BAKIYE=(SELECT Sum(G.[DEBIT]) - SUM(G.[CREDIT]) OVER (ORDER BY G.[LOGICALREF], G.[DATE_]) FROM LV_001_01_CLEKSTRE G INNER JOIN LG_001_CLCARD CL ON CL.LOGICALREF=G.CLIENTREF where G.LOGICALREF=CL.LOGICALREF GROUP BY G.[DEBIT],G.[CREDIT],CL.[LOGICALREF],G.DATE_ ,G.LOGICALREF)

     SQL Bakiye Alma


    Bakiyeler NULL olarak gözükmeye başladı.




  • üstat sanıyorum bu logo programından. logo destek diye bir forum sitesi var orda sql bölümü var üye ol siteye oraya yaz %90 çözerler problemi

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: teornek

    üstat sanıyorum bu logo programından. logo destek diye bir forum sitesi var orda sql bölümü var üye ol siteye oraya yaz %90 çözerler problemi

    Aynen öyle. :) Üye oluyorum hemen.
  • quote:

    Orijinalden alıntı: maxcoder7

    quote:

    Orijinalden alıntı: teornek

    üstat sanıyorum bu logo programından. logo destek diye bir forum sitesi var orda sql bölümü var üye ol siteye oraya yaz %90 çözerler problemi

    Aynen öyle. :) Üye oluyorum hemen.

    Ben çok şey öğrendim orda eminim sizde öğrenirsiniz

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.