Sorguda Gün hesabını yanlış; birikmeli toplama koşul koyamıyorum.

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Değerli hocalarım ve forum dostları;

Eski yılın son gününde sizden 1-2 ricam olacak...

Veritabanı dosyasındaki "Sorgu1, Sorgu2) sorgularında yapamadığım ve/veya doğru sonucu bulamadığım iki konuyu access'ten excel dosyasına aktarıp, kısa açıklamalarda bulundum.

Her zamanki gibi, değerli yardımlarınız bekliyorum.

İlgi ve katkınız için teşekkür ederim.

Bu arada, yeni yılınızı bir kez daha kutlar; huzurlu, mutlu, sağlıklı ve başarılarla dolu geçirmenizi dilerim.
 
Son düzenleme:

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Değerli hocalarım, Sn. beab05, Sn. Modalı, Sn. Taruz ve forum dostları;

Gününüz aydın, neşeniz ve sağlığınız yerinde, kazancınız bol olsun. Yeni yılın ülkemize ve bizlere umut, huzur, mutluluk ve başarı getirmesini dilerim.

Yönetici olarak ödemelerinde gecikenlerle ilgili gecikme faizi hesabını doğru yapabilmem için, daha önceki sorguda tespit ettiğim eksiklik sonrası, doğru hesaplama yapabilmem için sorgudaki koşullarda sanırım yeni bir düzenleme gerekiyor.

Bir gün neredeyse uğraştım. Olayı sonuçlandıramadım. Lütfen yardımınızı bekliyorum.

Sevgi ve saygılar.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Sorgu1;

Kod:
SELECT Oturanlar.adsoyad, GG.HarekNo, GG.Ödeyeceği, GG.Ödediği, GG.BorçTarihi, GG.ÖdemeTarihi, [Ödeyeceği]-[Ödediği] AS kalan, 0.00333 AS GünFaizOranı, Abs(IIf([kalan]>0,DateDiff("d",Date(),[BorçTarihi]),(IIf([kalan]=0 And [BorçTarihi]>[ÖdemeTarihi],0,DateDiff("d",[BorçTarihi],[ÖdemeTarihi]))))) AS dogrugun, [kalan]*[dogrugun]*[GünFaizOranı] AS GecZammı, GG.İşlemTür, (Select Sum(Ödeyeceği)  FROM  [GecikenGelirler] WHERE  [BölümNo] =GG.BölümNo and [HarekNo] <=GG.HarekNo) AS brködeyecek, (Select Sum(Ödediği)  FROM  [GecikenGelirler] WHERE  [BölümNo] =GG.BölümNo and [HarekNo] <=GG.HarekNo) AS brködenen, [brködeyecek]-[brködenen] AS brkkalan
FROM Oturanlar INNER JOIN GecikenGelirler AS GG ON Oturanlar.BölümNo = GG.BölümNo
ORDER BY Oturanlar.adsoyad, GG.HarekNo;
_____________________________________________________

sorgu2;

Kod:
SELECT Oturanlar.BölümNo, GG.HarekNo, GG.İşlemTür, GG.Ay, GG.BorçTarihi AS VadeSonu, GG.Ödeyeceği, GG.ÖdemeTarihi, GG.Ödediği, [Ödeyeceği]-[Ödediği] AS kalan, nz(([ÖdemeTarihi]-[BorçTarihi]),0) AS vd, IIf([kalan]=0,IIf([vd]>0,[vd],0),Date()-[BorçTarihi]) AS [Bugün-VadeSonuTarih-Farkı]
FROM Oturanlar INNER JOIN GecikenGelirler AS GG ON Oturanlar.BölümNo = GG.BölümNo;
Mutlu Yıllar..
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Bir koşul daha koymam gerek...

Değerli hocam beab05,

Beni hep hazıra konmak isteyen biri olarak sakın görmeyin. Öğrenmek adına önce kendim saatlerce uğraşıyorum. Ama size göre çok kolay gelen bir işlemde, bazı ince noktaları bilemediğim ya da mantığı iyi kavrayamadığım için doğru sonucu bulamıyorum.

Açıklama tablosundan İşlem Türü = AvAid İşlem Türü = AvYak İşlem Türü = AvDem olanlardan herhangi birine göre, birikmeli toplamı almak istiyorum.

Sorgu1’deki brködeyecek ve brködenen kolonlarında Select Sum ile başlıyan ifadenin Where’ini çeşitli şekilde yazmama karşın, doğru sonucu bulamadım.

Yine, ustamın yardımına ihtiyacım var. Aydın’a selam ve sevgiler.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Soruyu tam anlayamad&#305;m, yine sorgu1 deki gibi bir sorguyla ama bu sefer i&#351;lem t&#252;r&#252;ne g&#246;re mi runningsum istiyorsunuz ve hangi alanlar toplanacak? &#199;ok basit bir &#246;rnek verirseniz sevinirim.

E&#287;er ayn&#305; sorguya benzer bir &#351;ekilde ise sadece brk&#246;deyece&#287;i i&#231;in &#246;rnek veriyorum. Sorgu1 den bir tane daha olu&#351;turun. &#214;ncelikle i&#351;lemt&#252;r&#252; s&#252;tununu en ba&#351;a al&#305;n ve s&#305;ralamay&#305; artan yaz&#305;n sonra sql kodundaki ilgili k&#305;sm&#305; de&#287;i&#351;tirin.

Kod:
(Select Sum(&#214;deyece&#287;i)  FROM  [GecikenGelirler] WHERE  [&#304;&#351;lemT&#252;r] =GG.&#304;&#351;lemT&#252;r and [HarekNo] <=GG.HarekNo) AS brk&#246;deyecek
 
Son düzenleme:

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
İstemim

Sn. beab05,

Hocam kısa süredeki yanıtınız ve ilginiz beni çok duygulandırdı. Sağolun. Her şey gönlünüzce olsun.

Evet, ilk yazdığınız paragrafta belirttiğiniz gibi, Sorgu1 için verilen yanıtınızdaki SQL koduna; İşlemTürü koşulunun eklenmesini ve sonuçta da:

Koşul alanını AvAid yaptığımda, Aidat borçlarıyla ilgili gecikme zammını hesaplamış ve aidat parasının birikmeli toplamını almış olacağım.

Koşul alanını AvYak olarak değiştirdiğimde yakıt borçlarıyla ilgili gecikme zammını hesaplamış ve yakıt parasının birikmeli toplamını almış olacağım.

Koşul alanını AvDem olarak değiştirdiğimde de bina boyası borçlarıyla ilgili gecikme zammını hesaplamış ve boyanın birikmeli toplamını almış olacağım.

Değerli zamanınızı ayırdığınız ve yanıtınız için teşekkürler, hocam.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;
Yeni bir sorgu olu&#351;turun;

Kod:
SELECT GG.&#304;&#351;lemT&#252;r, Oturanlar.adsoyad, GG.HarekNo, GG.&#214;deyece&#287;i, GG.&#214;dedi&#287;i, GG.Bor&#231;Tarihi, GG.&#214;demeTarihi, [&#214;deyece&#287;i]-[&#214;dedi&#287;i] AS kalan, 0.00333 AS G&#252;nFaizOran&#305;, Abs(IIf([kalan]>0,DateDiff("d",Date(),[Bor&#231;Tarihi]),(IIf([kalan]=0 And [Bor&#231;Tarihi]>[&#214;demeTarihi],DateDiff("d",Date(),[Bor&#231;Tarihi]),DateDiff("d",[Bor&#231;Tarihi],[&#214;demeTarihi]))))) AS dogrugun, [kalan]*[dogrugun]*[G&#252;nFaizOran&#305;] AS GecZamm&#305;, (Select Sum(&#214;deyece&#287;i)  FROM  [GecikenGelirler] WHERE  [&#304;&#351;lemT&#252;r] =GG.&#304;&#351;lemT&#252;r and [HarekNo] <=GG.HarekNo) AS brk&#246;deyecek, (Select Sum(&#214;dedi&#287;i)  FROM  [GecikenGelirler] WHERE  [&#304;&#351;lemT&#252;r] =GG.&#304;&#351;lemT&#252;r and [HarekNo] <=GG.HarekNo) AS brk&#246;denen, [brk&#246;deyecek]-[brk&#246;denen] AS brkkalan
FROM Oturanlar INNER JOIN GecikenGelirler AS GG ON Oturanlar.B&#246;l&#252;mNo=GG.B&#246;l&#252;mNo
ORDER BY GG.&#304;&#351;lemT&#252;r, Oturanlar.adsoyad, GG.HarekNo;
Daha sonra &#246;l&#231;&#252;t olan&#305;na g&#246;re istedi&#287;iniz gibi i&#351;lem yapabilirsiniz..
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Düzeltmemi gerekiyor?

Sn. beab05,

Hocam, V1 veritabanındaki Sorgu1 ve Sorgu2’deki soruma SQL koduyla verdiğiniz yanıtları, v2 veritabanında birleştirmeye çalıştım.

Sonuçlar istediğim gibi olmadı, Hocam;

1- Sorgu2’nin veri görünümünde de göreceğiniz gibi, İşlem Türü’ne göre sıralama yaptım, dairede oturanların isimleri değişmesine rağmen, birikmeli toplam alanı sıfırdan başlamıyor,, birikmeli olarak devam ediyor.

2- Vadeden (BorçTarihi) sonra ödeme yapanlarda Gün Sayısı doğru, ancak gecikilen gün için gecikme faizi hesaplamıyor., (Bkz. HarekNo 17 ve 18; Gün Farkı sırasıyla 61 ve 31 olmasına rağmen, GecZammı alanında, hesaplanan gecikme faiz tutarı yok.

Hocam, size verdiğim zahmetlerim için, lütfen kusuruma bakmayın.

Teşekkürlerimi sunarım. Her şey gönlünce olsun.

Sevgi ve saygılar.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;
Cevap1: &#304;sme g&#246;re birikmeli toplam istiyorsan&#305;z isimleri en ba&#351;a al&#305;n artan yap&#305;n ve where &#351;art&#305;nda isim alan&#305;n&#305; yaz&#305;n&#305;z.

Cevap2: Tabii ki hesaplamaz asl&#305;nda hesapl&#305;yor, o sat&#305;rlarda kalan 0 oldu&#287;u i&#231;in i&#351;lem sonucu da 0 oluyor.
Gecikme zamm&#305; alan&#305;n&#305; alttaki gibi d&#252;zeltiniz..

Kod:
GecZamm&#305;: IIf([kalan]=0;[G&#252;nFark&#305;2]*[G&#252;nFaizOran&#305;];[kalan]*[G&#252;nFark&#305;2]*[G&#252;nFaizOran&#305;])
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
&#304;sme g&#246;re toplamlar i&#231;in (cevap1) ;

Kod:
SELECT GG.B&#246;l&#252;mNo, GG.&#304;&#351;lemT&#252;r, Oturanlar.adsoyad, GG.HarekNo, GG.&#214;deyece&#287;i, GG.&#214;dedi&#287;i, GG.Bor&#231;Tarihi, GG.&#214;demeTarihi, [&#214;deyece&#287;i]-[&#214;dedi&#287;i] AS kalan, nz(([&#214;demeTarihi]-[Bor&#231;Tarihi]),0) AS vd, IIf([kalan]=0,IIf([vd]>0,[vd],0),Date()-[Bor&#231;Tarihi]) AS G&#252;nFark&#305;2, 0.00333 AS G&#252;nFaizOran&#305;, [kalan]*[G&#252;nFark&#305;2]*[G&#252;nFaizOran&#305;] AS GecZamm&#305;, (Select Sum(&#214;deyece&#287;i)  FROM  [GecikenGelirler] WHERE  [B&#246;l&#252;mNo] =GG.B&#246;l&#252;mNo and [HarekNo] <=GG.HarekNo) AS brk&#246;deyecek, (Select Sum(&#214;dedi&#287;i)  FROM  [GecikenGelirler] WHERE  [B&#246;l&#252;mNo] =GG.B&#246;l&#252;mNo and [HarekNo] <=GG.HarekNo) AS brk&#246;denen, [brk&#246;deyecek]-[brk&#246;denen] AS brkkalan
FROM Oturanlar INNER JOIN GecikenGelirler AS GG ON Oturanlar.B&#246;l&#252;mNo = GG.B&#246;l&#252;mNo
ORDER BY GG.B&#246;l&#252;mNo, GG.&#304;&#351;lemT&#252;r, Oturanlar.adsoyad, GG.HarekNo;
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Yapamadım.

Hocam;

Cevap1 için verdiğiniz yanıta göre gerekenleri vt3 sorgu3'te yaptım, ancak bu kez birikmeli alanlarım uçtu...

Bunun bir inceliği var! Yavaş yavaş siz ustalarımızdan bunu öğreneceğiz.

İlginiz ve yanıtınız için önceden tekrar teşekkürler.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
&#214;rne&#287;inizi incelemedim. Siz san&#305;r&#305;m isim alan&#305;na g&#246;re yapt&#305;n&#305;z ki ben &#246;yle demi&#351;tim ama asl&#305;nda b&#246;l&#252;mno ya g&#246;re yap&#305;lmal&#305; ve yap&#305;lm&#305;&#351;&#305;n&#305; 10. mesajda yazd&#305;m. San&#305;r&#305;m g&#246;rmediniz.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Şükürler Olsun. Süpersiniz.

Hocam,

Verdiğiniz bilgiler ışığında, biraz oynamalar yaptıktan sonra her şey tam istediğim gibi oldu.

Her daire sahibine göre, aidat, yakıt ve bina boya ödemelerini yapmayanların gecikme faiz tutarları ile birikmeli toplamları; her işlem türü ve daire sahibi değiştiğinde sıfırdan başlayarak yeniden alınabiliyor.

Dosyanın son halini, arkadaşlara da yardımı olur diye, siteye ekliyorum.

Katkınız için sonsuz teşekkürler, hocam. Allah razı olsun.

Sevgi ve saygılar.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Bitti&#287;ine ben sizden &#231;ok sevindim ;) Yanl&#305;&#351; anlamay&#305;n sak&#305;n latife yap&#305;yorum. Yard&#305;mc&#305; olabildi&#287;ime &#231;ok sevindim..
 
Son düzenleme:
Üst