CARİ HESAP SON HAREKET TARİHİ VE SON BAKİYE HAKKINDA

Gönderen Konu: CARİ HESAP SON HAREKET TARİHİ VE SON BAKİYE HAKKINDA  (Okunma sayısı 2350 defa)

0 Üye ve 3 Ziyaretçi konuyu incelemekte.

Çevrimdışı teornek

  • Logo Kullanıcısı
  • **
  • Karma: 0
  • Bir yerden başlamak gerekir
Sql de yeni bir rapor çalışyordum fakat bir yerde tıkandım beyler yardım ederseniz çok sevinirim..
Yapmak sitediğim rapor
CARİ KOD   UNVAN   BAKİYE   SON YAPILAN SATIŞ TARİHİ   SON ALINAN ÖDEME TARİHİ
şeklinde

Cari Kod Unvan geliyor en güncel bakiyede geliyor fakat tarih koyamıyorum bir kaç farklı yerden tarih denedim o zaman 200 lük cari oluyor 2400 adet yani en günceli değil hepsini getiriyor ben en güncel olanı istiyorum şu ana kadar yazdığım kod:

SELECT   
LG_050_CLCARD.CODE AS [CARİ KODU],
LG_050_CLCARD.DEFINITION_ AS [CARİ ÜNVANI],
SUM((CASE LG_050_02_CLFLINE.TRCURR WHEN 0 THEN (TRNET-(SIGN*TRNET))-(SIGN*TRNET) ELSE 0 END)) AS [BAKİYE (TL)],   
SUM((CASE LG_050_02_CLFLINE.TRCURR WHEN 1 THEN (TRNET-(SIGN*TRNET))-(SIGN*TRNET) ELSE 0 END)) AS [BAKİYE (USD)],
SUM((CASE LG_050_02_CLFLINE.TRCURR WHEN 20 THEN (TRNET-(SIGN*TRNET))-(SIGN*TRNET) ELSE 0 END)) AS [BAKİYE (EUR)]
FROM  LG_050_02_CLFLINE INNER JOIN LG_050_CLCARD ON LG_050_02_CLFLINE.CLIENTREF = LG_050_CLCARD.LOGICALREF 
WHERE CODE LIKE 'MST%'
GROUP BY LG_050_CLCARD.CODE, LG_050_CLCARD.DEFINITION_
ORDER BY LG_050_CLCARD.CODE


son olarak da şöyle bir saçma durum var bu kodda bazı carilerde mesela Ahmet ismindeki bir müşterinin tl hesabı 2500 iken yazan rakam 4,54747350886464E-13 gibi geliyor bunun nedenini bilen var mı acaba??

Çevrimdışı teornek

  • Logo Kullanıcısı
  • **
  • Karma: 0
  • Bir yerden başlamak gerekir
tahminimce max kullanmam gerekecek tarih için ama 2 adet tarihi nasıl yanyana getireceğim böyle bir şey olur mu açıkcası pek de imkan vermiyorum..

Çevrimdışı aogul

  • Yeni Kullanıcı
  • *
  • Karma: 0
Merhaba,

son satış tarihi için bu kodu eklersen sanırım işini çözecektir.
(SELECT TOP 1 DATE_ FROMLG_050_02_STLINE WHERE TRCODE IN (7,8) AND CLIENTREF=LG_050_CLCARD.LOGICALREF ORDER BY DATE_ DESC) AS [SON SATIS TARIHI]

Tl ve döviz bakiyeler için round kullanırsan daha iyi olur bence.
ROUND(SUM((CASE LG_050_02_CLFLINE.TRCURR WHEN 0 THEN (TRNET-(SIGN*TRNET))-(SIGN*TRNET) ELSE 0 END)),2) AS [BAKİYE (TL)],   

İyi çalışmalar.

Çevrimdışı teornek

  • Logo Kullanıcısı
  • **
  • Karma: 0
  • Bir yerden başlamak gerekir
Merhaba,

son satış tarihi için bu kodu eklersen sanırım işini çözecektir.
(SELECT TOP 1 DATE_ FROMLG_050_02_STLINE WHERE TRCODE IN (7,8) AND CLIENTREF=LG_050_CLCARD.LOGICALREF ORDER BY DATE_ DESC) AS [SON SATIS TARIHI]

Tl ve döviz bakiyeler için round kullanırsan daha iyi olur bence.
ROUND(SUM((CASE LG_050_02_CLFLINE.TRCURR WHEN 0 THEN (TRNET-(SIGN*TRNET))-(SIGN*TRNET) ELSE 0 END)),2) AS [BAKİYE (TL)],   

İyi çalışmalar.


Hocam verdiğin kodlar için çok teşekkür ederim ufak şeyler ama benim kaçırdığım şeyler çok sağolun..son alınan ödeme için bir önerin varmı?

Çevrimdışı Monsieur®

  • LogoDestek Yönetim
  • Logo Uzmanı
  • *****
  • Karma: 38
Merhaba,

Yine aynı mantıkla, clfline ı çekebilirsiniz

Çevrimdışı teornek

  • Logo Kullanıcısı
  • **
  • Karma: 0
  • Bir yerden başlamak gerekir
Merhaba,

Yine aynı mantıkla, clfline ı çekebilirsiniz

Hocam ödeme tarihi için tam yazmamışım kusura bakmayın

Çevrimdışı aogul

  • Yeni Kullanıcı
  • *
  • Karma: 0
Merhaba,

son tahsilat tarihi için aşağıdaki kod işini görecektir.
(SELECT TOP 1 date_ from LG_050_02_CLFLINE where TRCODE IN (1,20) AND CLIENTREF=LG_050_CLCARD.LOGICALREF ORDER BY DATE_ DESC) AS [SON TAHSIL TARIHI]

TRCODE = 1; Nakit Tahsilat
TRCODE = 20; Gelen Havale
olması lazım

İyi çalışmalar

Çevrimdışı Monsieur®

  • LogoDestek Yönetim
  • Logo Uzmanı
  • *****
  • Karma: 38
Merhaba,

Yine aynı mantıkla, clfline ı çekebilirsiniz

Hocam ödeme tarihi için tam yazmamışım kusura bakmayın

Yine aynı mantıkla çözeceksiniz.
yani

(SELECT TOP 1 DATE_ FROMLG_050_02_STLINE WHERE TRCODE IN (7,8) AND CLIENTREF=LG_050_CLCARD.LOGICALREF ORDER BY DATE_ DESC) AS [SON SATIS TARIHI]
(SELECT TOP 1 DATE_ FROM LG_050_02_CLFLINE WHERE TRCODE IN (ödeme işleminde hangi şartlar olacaksa) AND CLIENTREF=LG_050_CLCARD.LOGICALREF ORDER BY DATE_ DESC) AS [SON ÖDEME TARIHI]


Çevrimdışı teornek

  • Logo Kullanıcısı
  • **
  • Karma: 0
  • Bir yerden başlamak gerekir
YARDIMDA BULUNAN HERKESE TEŞEKKÜR EDERİM İHTİYACI OLAN İÇİN RAPORUN SON HALİ..;



/*Dövizli cari bakiye-satış-ödeme tarihleri*/ 
SELECT   
LG_050_CLCARD.CODE AS [CARİ KODU],
LG_050_CLCARD.DEFINITION_ AS [CARİ ÜNVANI],
ROUND(SUM((CASE LG_050_02_CLFLINE.TRCURR WHEN 0 THEN (TRNET-(SIGN*TRNET))-(SIGN*TRNET) ELSE 0 END)),2) AS [BAKİYE (TL)],     
ROUND(SUM((CASE LG_050_02_CLFLINE.TRCURR WHEN 1 THEN (TRNET-(SIGN*TRNET))-(SIGN*TRNET) ELSE 0 END)),2) AS [BAKİYE (USD)],
ROUND(SUM((CASE LG_050_02_CLFLINE.TRCURR WHEN 20 THEN (TRNET-(SIGN*TRNET))-(SIGN*TRNET) ELSE 0 END)),2) AS [BAKİYE (EUR)],
(SELECT TOP 1 DATE_ FROM LG_050_02_STLINE WHERE TRCODE IN (7,8) AND CLIENTREF=LG_050_CLCARD.LOGICALREF ORDER BY DATE_ DESC) AS [SON SATIS TARIHI],
(SELECT TOP 1 DATE_ FROM LG_050_02_CLFLINE WHERE TRCODE IN (1) AND CLIENTREF=LG_050_CLCARD.LOGICALREF ORDER BY DATE_ DESC) AS [SON ÖDEME TARIHI]
FROM  LG_050_02_CLFLINE INNER JOIN LG_050_CLCARD ON LG_050_02_CLFLINE.CLIENTREF = LG_050_CLCARD.LOGICALREF
WHERE CODE LIKE 'MST%'
GROUP BY LG_050_CLCARD.CODE, LG_050_CLCARD.DEFINITION_,LG_050_CLCARD.LOGICALREF
ORDER BY LG_050_CLCARD.CODE

Çevrimdışı tarkandemir

  • Yeni Kullanıcı
  • *
  • Karma: 0
Peki bu tabloya son son satış fiyatı ve son tahsilat fiyatı eklenebilir mi

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: CARİ HESAP SON HAREKET TARİHİ VE SON BAKİYE HAKKINDA
« Yanıtla #10 : 31.08.2015, 01:32 »
ilk subselect icin DATE_ Yerine PRICE , ikicin subselect icin Date_ yerine AMOUNT ile alınabilir .

Çevrimdışı lahzen

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: CARİ HESAP SON HAREKET TARİHİ VE SON BAKİYE HAKKINDA
« Yanıtla #11 : 07.01.2019, 00:20 »
Teşekkürler