Forum
Merhaba Arkadaşlar, Go3 kullanıyorum. Bir müşterinin bakiyesinin ne kadar gün geçtiğini bulmak için araştırma yapıyorum. Bir türlü sonucu bulamadım. Yapmak istediğim şey şu;
Bir carimiz var bakiyesi 1.100 TL diyelim. Ben yıllara sari işlem yaptığım için ortalama vade sorguları işimi görmüyor. ve Borç kapama da yapmıyorum.
Bana göre en garanti bakiye kadar son kestiğim faturaları geriye doğru toplayarak bakiye ye eşitleme ve o faturadaki tarihi görmek örneğin; (Tahsilatlar beni ilgilendirmiyor. Sadece Tarih açıklama ve borç bilgilerini görmem yeterli Cari bakiyesi 1.100 TL
Tarih Açıklama Borç
01.03.2026 Satış faturası 100 TL
02.03.2026 Satış faturası 50 TL
04.03.2026 Satış faturası 120 TL
05.03.2026 Satış faturası 250 TL
08.03.2026 Satış faturası 275 TL
10.03.2026 Satış faturası 300 TL
15.03.2026 Satış faturası 580 TL
21.03.2026 Satış faturası 235 TL
Carinin bakiyesi 1.100 TL. En son kesilen faturalardan geriye doğru toplarsak 235+580+300=1.115 TL yapıyor. Yani satış fatruası 300 TL olan faturanın tarihi 10.03.2026
Bugün 29.03.2026-10.03.2026 = 19 gün geçmiş yani 1.100 TL'nin vadesi 19 gün geçmiş ben bunu görmek istiyorum. Nasıl bir sorgu veya excel formülü gerekiyor
Yardımlarınız ve ilginiz için çok teşekkür ederim.
Selamlar,
Excel ile kolayca bulabilirsin aslında, kullanmak mı istemiyorsun?
Tarih, açıklama ve borç olacak şekilde 3 sutun olsun. A,B,C yi kullandığın için D sutunu toplama olmalı
=TOPLA($C$2:C2)
Sonra bakiye geçen satırı bulman için E sutununu kullanavilirsin
=EĞER(D2>=1100;"BULUNDU";"")
Son olarak gün hesabı 🙂
=BUGÜN()-İNDİS(A:A;KAÇINCI("BULUNDU";E:E;0))
SQL ile yapmak istiyorsan aşağıdaki kodu inceleyebilirsin;
WITH Hareketler AS (
SELECT
Tarih,
Aciklama,
Borc,
SUM(Borc) OVER (ORDER BY Tarih DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS KumulatifToplam
FROM CariHareketler
WHERE CariKod = 'XXX'
AND Tip = 'Fatura'
)
SELECT TOP 1 *
FROM Hareketler
WHERE KumulatifToplam >= 1100
ORDER BY Tarih DESC
Sonra sonucu görmek için
SELECT DATEDIFF(DAY, Tarih, GETDATE()) AS GecenGun
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Merhaba Arkadaşım (Hakan) vermiş olduğun cevap için çok teşekkür ederim. Sql kod oldu eline sağlık, ancak bu sorgu sadece bir cari ve bakiyesi için veriyor. Ben tüm çariler için istiyorum. örneğin şöyle yapılabilir mi? (Logo Go3 kullanıyorum. Verdiğin kodu Go3'e göre uyarladım.
Carinin Kodu Bakiyesi Geçen Gün
120.0001 5.500 25
120.0100 1.850 10
120.0250 6.875 120 yani tüm carileri gösterecek şekilde, senin verdiğin örnekte tek bir cari ve bakiye koşulu olmadan göstermiyor. Tekrar İlgine, alakana çok teşekkür ederim. İyi çalışmalar,
Selam arkadaşlar, GO3'de aşağıdaki gibi bir sorgu var. (Hakan UZUNER sorgusunu GO3 uyarladım.)
WITH Hareketler AS (SELECT CLIENTREF, DATE_, FICHENO, NETTOTAL, SUM(NETTOTAL) OVER (ORDER BY DATE_ DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS KumulatifToplam
FROM LG_005_01_INVOICE
WHERE TRCODE = 8 AND CLIENTREF= 313)
SELECT TOP 1 *
FROM Hareketler
WHERE KumulatifToplam >= 1919.96
ORDER BY DATE_ DESC
| 313 | 2025-10-16 00:00:00.000 | 1900000000166351 | 231 | 2033 |
CLIENTREF (carinin kodu oluyor, KümülatifToplam = 1.919,96 bu carinin şu anki bakiyesi)
Bu sorgunun sonucu aşağıdadır.
SELECT DATEDIFF(DAY, DATE_, GETDATE()) AS GecenGun, CLIENTREF, NETTOTAL, KumulatifToplam
FROM dbo.caribakiye10
WHERE (CLIENTREF = 313)
| 166 | 313 | 231 | 2033 |
bu sorgu doğru sonucu veriyor yani 313 nolu cari 166 gündür ödeme yapmıyor
benim yapmak istediğim sadece 313 nolu cari değil tüm carileri görmek istiyorum. Sorguda nasıl bir değişiklik yapmam gerekiyor. Teşekkürler. İyi çalışmalar,
Selam, bunu dener misin
WITH Bakiyeler AS
(
SELECT
CLIENTREF,
BAKIYE
FROM dbo.caribakiye10
WHERE BAKIYE > 0
),
Hareketler AS
(
SELECT
I.CLIENTREF,
I.DATE_,
I.FICHENO,
I.LOGICALREF,
I.NETTOTAL,
B.BAKIYE,
SUM(I.NETTOTAL) OVER (
PARTITION BY I.CLIENTREF
ORDER BY I.DATE_ DESC, I.LOGICALREF DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS KumulatifToplam
FROM LG_005_01_INVOICE I
INNER JOIN Bakiyeler B
ON B.CLIENTREF = I.CLIENTREF
WHERE I.TRCODE = 8
),
EslesenSatirlar AS
(
SELECT
CLIENTREF,
DATE_,
FICHENO,
LOGICALREF,
NETTOTAL,
BAKIYE,
KumulatifToplam,
ROW_NUMBER() OVER (
PARTITION BY CLIENTREF
ORDER BY DATE_ DESC, LOGICALREF DESC
) AS RN
FROM Hareketler
WHERE KumulatifToplam >= BAKIYE
)
SELECT
C.CODE AS CariKodu,
C.DEFINITION_ AS CariUnvani,
E.BAKIYE,
E.DATE_ AS EslesenTarih,
DATEDIFF(DAY, E.DATE_, GETDATE()) AS GecenGun,
E.FICHENO,
E.NETTOTAL,
E.KumulatifToplam
FROM EslesenSatirlar E
INNER JOIN LG_005_CLCARD C
ON C.LOGICALREF = E.CLIENTREF
WHERE E.RN = 1
ORDER BY GecenGun DESC, C.CODE;
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Arkadaşım eline emeğine sağlık. Çok Teşekkür ederim. Bir kaç değişiklik yaptım. Tam istediğim gibi oldu. İyi çalışmalar,
Rica ederiz, iyi çalışmalar diliyoruz.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
