Bakiyelerin Bulunması

Katılım
3 Nisan 2007
Mesajlar
235
Excel Vers. ve Dili
2003 TR
Ekte sunmuş olduğum veritabanında DövizBakiye ve YTLBakiye sütunlarına ilgili firmaların bakiyelerini nasıl yazdırabilirim?

Yani Firma adı değiştikçe bakiyelerde diğer firmaya bağlı olarak değişecek. Bunu nasıl bir sorgu ile yapabilirim?
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Firmaların toplma ytl-döviz bakiyelerini mi görmek istiyorsunuz?

Kod:
SELECT CariHesaplar.FirmaAdı, Sum(CariHesaplar.DövizBakiye) AS ToplaDövizBakiye, Sum(CariHesaplar.YTLBakiye) AS ToplaYTLBakiye
FROM CariHesaplar
GROUP BY CariHesaplar.FirmaAdı;
Yoksa yürüyen bakiye türünde bir şey mi?
 
Katılım
3 Nisan 2007
Mesajlar
235
Excel Vers. ve Dili
2003 TR
Her satırda sonuç görünmeli, birde bu sorgunun ilgili satırları güncelleşltirmesi gerekiyor.
Mesela yazılan sorguda TREDA firması YTL bakiyesi 0 olması gerekirken 19.132,04 görünüyor.
Yani işlem şöyle olmalı;
YTLBorç + YTLAlacak = sonuç firma adı değişirse işlem baştan başlamalı.
DövizBorç + DövizAlacak = Sonuç
Benim yazdığım bakiyeler tamamen güncellenmeli
Teşekkürler

Bu şekilde sadece son bakiyeler göründü; Yürüyen bakiye lazım
SELECT CariHesaplar.FirmaAdı, Sum(CariHesaplar.DövizBorç) + Sum(CariHesaplar.DövizAlacak) AS ToplaDövizBakiye, Sum(CariHesaplar.YTLBorç)+Sum(CariHesaplar.YTLAlacak) AS ToplaYTLBakiye
FROM CariHesaplar
GROUP BY CariHesaplar.FirmaAdı;
 
Son düzenleme:
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Kod:
SELECT ttt.[No], ttt.&#304;&#351;lemTarihi, ttt.FirmaAd&#305;, ttt.YTLBor&#231;, ttt.YTLAlacak, ttt.kalanytl, ttt.D&#246;vizBor&#231;, ttt.D&#246;vizAlacak, ttt.KalanD&#246;viz, (select sum(kalanytl) from tt where [no]<=ttt.[no] and firmaad&#305;=ttt.FirmaAd&#305;) AS [Ytl Bakiye], (select sum(kaland&#246;viz) from tt where [no]<=ttt.[no] and firmaad&#305;=ttt.FirmaAd&#305;) AS [D&#246;viz Bakiye]
FROM tt AS ttt;
Firmaya g&#246;re filtreledi&#287;inizde s&#305;ral&#305; olarak bakiyeyi alabilirsiniz.. Ytl ve d&#246;viz ayr&#305; ayr&#305; olarak..

&#199;&#305;kan sonu&#231;lar istedi&#287;inizle &#246;rt&#252;&#351;ecek san&#305;r&#305;m..
 
Katılım
3 Nisan 2007
Mesajlar
235
Excel Vers. ve Dili
2003 TR
Say&#305;n Taruz ilginiz i&#231;in te&#351;ekk&#252;rler. Ancak &#351;&#246;yle olmal&#305;

Bor&#231; Alacak Bakiye
100 +++++++++100
++++(-)50+++++50
250++++++++++300
++++(-)30+++++270

Sizin verdi&#287;iniz sorguyu biraz de&#287;i&#351;tirdim ve istedi&#287;imi neredeyse elde ettim, ancak bakiyeler y&#252;r&#252;yen bakiye de&#287;iller, sadece son bakiye g&#246;r&#252;nd&#252;.

SELECT CariHesaplar.FirmaAd&#305;, Sum(CariHesaplar.D&#246;vizBor&#231;) + Sum(CariHesaplar.D&#246;vizAlacak) AS ToplaD&#246;vizBakiye, Sum(CariHesaplar.YTLBor&#231;)+Sum(CariHesaplar.YTLAlacak) AS ToplaYTLBakiye
FROM CariHesaplar
GROUP BY CariHesaplar.FirmaAd&#305;;


Birde yukar&#305;da eklemeler yapm&#305;&#351; oldu&#287;um kodun, Update sorgusuna d&#246;n&#252;&#351;t&#252;r&#252;lmesi nas&#305;l olur?
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Sorgu o &#351;ekilde &#231;al&#305;&#351;&#305;yor zaten??

Siz bir firman&#305;n hesap hareketlerini y&#252;r&#252;yen bakiye olarak istemiyor musunuz?

Hesaplanarak ortay &#231;&#305;kan verileri tabloya UPDATE etmeniz veritaban&#305; mant&#305;&#287;&#305;na ayk&#305;r&#305; ayr&#305;ca.. Gereksiz veri depolayacaks&#305;n&#305;z..
 
Katılım
8 Eylül 2006
Mesajlar
155
Excel Vers. ve Dili
Excel 2002
Öncelikle mesajı geç farkettim ve belki de çoktan çözmüşsünüzdür sorunu ama
sizin işinize yaramasa bile belki başka ihtiyacı olan arkadaşların işine yarar diye bir bakayım dedim. Sn. Taruz uğraşmış ama istenilen sonuç olmamış.

Access'te Yürüyen Bakiye hesabı raporlarda çok rahat çözülüyor ama
sorgulardaki çözümünü bende henüz bulamadım. Raporlarda işimi hallettiğim için çok da üstüne düşmedim.

Belki işinize yarar diye Rapor Çözümünü yaptım ve ekte gönderdim.
Ekteki raporda sadece Bakiye alanlarında RunningSum (Türkçesini tam bilmiyorum ama YürüyenToplam gibi birşey olmalı) özelliğini aktif ettim.

Eğer veritabanınız Access değilde SQL ise View veya Stored Procedure'da
aşağıdaki script ile yürüyen bakiyeyi hesaplatabilirsiniz.

Kod:
Select FirmaAdı, İşlemTarihi, No, Döviz, DövizBorç, DövizAlacak,
       DövizBakiye=(Select Sum(DövizBorç + DövizAlacak) 
                      From CariHesaplar 
                     Where FirmaAdı=CH.FirmaAdı And (İşlemTarihi < CH.İşlemTarihi Or (İşlemTarihi = CH.İşlemTarihi And No <= CH.No))),
       YTLBorç, YTLAlacak,
       YTLBakiye=(Select Sum(YTLBorç + YTLAlacak) 
                      From CariHesaplar 
                     Where FirmaAdı=CH.FirmaAdı And (İşlemTarihi < CH.İşlemTarihi Or (İşlemTarihi = CH.İşlemTarihi And No <= CH.No)))
From CariHesaplar as CH
Order By FirmaAdı, İşlemTarihi, No
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba. sn seruz..

Sanırım #4 nolu kutudaki örneği iyi incelemediniz.. İncelemiş olsaydınız yüyüyen bakiyenin sorguyla çözüldüğünüde görmüş olurdunuz..

"... istenilen sonuç olmamış" değerlendirmeniz biraz iddalı olmuş yani..;)

Sorgudaki sıralamayı
Kod:
ORDER BY ttt.FirmaAdı, ttt.[No], ttt.İşlemTarihi;
olarak değiştirerek bakınca daha iyi anlaşılacaktır..

Hatta hazırladığım bu sorguyu birleştirme sorgusu haline dönüştürerek Firmaların bakiye alt toplamlarını da aynı da aynı ekranda alabiliriz..

Saygılar..
 
Katılım
8 Eylül 2006
Mesajlar
155
Excel Vers. ve Dili
Excel 2002
Mesaj&#305;n&#305;z &#252;zerine tekrar bak&#305;nca g&#246;rd&#252;m ki, istenilen sonu&#231; olmu&#351; :)

Sn. Taruz &#246;ncelikle &#246;z&#252;r dilerim.

Asl&#305;nda hi&#231; bir zaman iddial&#305; olmay&#305; sevmem
&#231;&#252;nk&#252; "Ak&#305;l ak&#305;ldan &#252;st&#252;nd&#252;r" s&#246;z&#252;ne her zaman inan&#305;r&#305;m.

Ama san&#305;r&#305;m #5 nolu mesajdaki olmam&#305;&#351; yaz&#305;s&#305; &#246;n yarg&#305;l&#305; davranmam&#305; ve
g&#246;z&#252;mden ka&#231;mas&#305;n&#305; sa&#287;lad&#305;.
Ayr&#305;ca avatar'da fotosu g&#246;r&#252;nen hen&#252;z bir haftal&#305;k k&#305;z&#305;m nedeniyle,
g&#246;z&#252;m pek bir &#351;ey g&#246;rm&#252;yor bu aralar :)

G&#252;zel bir &#231;&#246;z&#252;m, te&#351;ekk&#252;rler.

Ama yine de k&#252;&#231;&#252;k bir not, bakiyeyi al&#305;rken kontrol&#252; No alan&#305;na g&#246;re de&#287;il de,
&#246;nce tarih sonra no alan&#305;na g&#246;re yapmak daha do&#287;ru olur bence.
(benim yapt&#305;&#287;&#305;m gibi yani :) )

Ben yine de iddial&#305; olmiim :) ama tarih de&#287;i&#351;tirilebilir,
eski bir tarihe kay&#305;t girilebilir vs. nedenlerle no ve tarih s&#305;ras&#305; de&#287;i&#351;ebilir.
 
Son düzenleme:
Katılım
8 Eylül 2006
Mesajlar
155
Excel Vers. ve Dili
Excel 2002
SQL'de script'i yazabilmiştim ama Access'teki sorguda bunu nasıl yapabileceğimi çözememiştim. (Akıl akıldan üstündür :) )

Aslında Access'te de çift sorgu yerine tek sorgu ile çözümlenir bu işlem.

Kod:
SELECT yb.FirmaAdı, yb.İşlemTarihi, yb.[No], yb.YTLBorç, yb.YTLAlacak, (select sum(nz([YTLBorç])+nz([YTLAlacak])) from CariHesaplar where firmaadı=yb.FirmaAdı And (İşlemTarihi < yb.İşlemTarihi Or (İşlemTarihi = yb.İşlemTarihi And No <= yb.No))) AS YTLBakiye, yb.DövizBorç, yb.DövizAlacak, (select sum(nz([DövizBorç])+nz([DövizAlacak])) from CariHesaplar where firmaadı=yb.FirmaAdı And (İşlemTarihi < yb.İşlemTarihi Or (İşlemTarihi = yb.İşlemTarihi And No <= yb.No))) AS DövizBakiye
FROM CariHesaplar AS yb
ORDER BY yb.FirmaAdı, yb.İşlemTarihi, yb.[No];
Sadece biraz karışıkmış gibi görünüyor ama mantık basit.
 
Son düzenleme:
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba sn seruz..

Sizi ve e&#351;inizi tebrik ederim.. Allah anal&#305; babal&#305; b&#252;y&#252;ts&#252;n. :)

Sorgudaki &#231;&#246;z&#252;m&#252;n g&#246;z&#252;nden ka&#231;t&#305;&#287;&#305;na emindim.. Yoksa forum i&#231;erisinde verdi&#287;iniz &#231;&#246;z&#252;m &#246;nerilerinden bu konudaki bilginiz konusunda intibam vard&#305; zaten..

Bence kontrol benzersiz alandan al&#305;nmal&#305;.. Tersi bir durum ayn&#305; tarihli hareketlerde s&#305;k&#305;nt&#305; yaratabilir..

Bu t&#252;rde sorgular&#305; genelde bende tek sorgu i&#231;erisinde yap&#305;yorum ama sizinde g&#246;rd&#252;&#287;&#252;n&#252;z gibi null alanlar&#305;n olu&#351;u ve di&#287;er fazlal&#305;klar toparlama a&#231;&#305;s&#305;ndan iki sorgu &#252;zerinden hareket etmeme sebep oldu..

Sayg&#305;lar..
 

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
Say&#305;n Seruz;

Ben de sizi ve e&#351;inizi tebrik ederim.

K&#305;z&#305;n&#305;z anal&#305; babal&#305; b&#252;y&#252;s&#252;n, &#351;ans&#305; a&#231;&#305;k ve uzun &#246;m&#252;rl&#252; olsun. Say&#305;n Taruz hocam da yeni babalardan...

Selam ve sevgiler.
 
Katılım
8 Eylül 2006
Mesajlar
155
Excel Vers. ve Dili
Excel 2002
Sn. Taruz ve assenucler,
&#304;yi dilekleriniz i&#231;in te&#351;ekk&#252;r ediyorum ve
Sn. Taruz sizi de ayr&#305;ca tebrik ediyorum.
Sizde yeni baba oldu&#287;unuza g&#246;re ruh halimi anl&#305;yorsunuzdur :)

Biraz &#351;ahsi reklam gibi olacak ama www.seruz.com 'da k&#305;z&#305;m&#305;n foto&#287;raflar&#305;n&#305; g&#246;rebilirsiniz.

Not: Kontrol tabii ki benzersiz alanlardan al&#305;nmal&#305;.. Ancak dedi&#287;im gibi olabilecek &#231;e&#351;itli sebeplerden &#246;t&#252;r&#252; tarih ve no paralel olmayabilir.
Ayn&#305; tarihli hareketler tabiiki olabilece&#287;i i&#231;in, &#246;nce tarih sonra ayn&#305; tarihlerde no kontrol&#252; ekledim.

Asl&#305;nda muhasebe a&#231;&#305;s&#305;ndan ayn&#305; tarihli hareketlerde &#246;nce bor&#231; sonra alacak hareketleri s&#305;ralan&#305;r ama burada &#231;ok da &#246;nemli de&#287;il.
 
Üst