Mikro Erp Kasa Banka Bakiye Raporu
Posted on Aralık 15, 2025 by
Şaban ÇİÇEK
Kasa / Banka Bakiye Raporu (SQL)
Kısa özet: Bu sorgu, CARI_HESAP_HAREKETLERI tablosundaki kasa/banka hareketlerini toplayarak
her bir kasa ve banka hesabı için net bakiye üretir. Sonuçlar tek tabloda birleşsin diye
UNION ile iki kaynak (KASALAR + BANKALAR) birleştirilmiştir.
Sorgu ne yapıyor?
- Kasa tarafı: KASALAR tablosundaki kasaları, ilgili hareketlerle eşleştirip toplam bakiyeyi hesaplar.
- Banka tarafı: BANKALAR tablosundaki bankaları, ilgili hareketlerle eşleştirip toplam bakiyeyi hesaplar.
- Net hesap:
cha_tip = 0olan hareketler eksi, diğerleri artı kabul edilir. - Döviz: Kasa/Banka döviz cinsi, fonksiyonlar ile isimlendirilir.
Dönen kolonlar
| Kolon | Açıklama |
|---|---|
| Kasa_Kodu | Kasa kodu (kas_kod) veya banka muhasebe kodu (ban_muh_kod). |
| KasaAdi | Kasa adı (kas_isim) veya banka TCMB kodu (ban_TCMB_Kodu). |
| KasaTipi | Kasa tipi / mevduat cinsi (fonksiyon ile açıklanır). |
| BankaKodu | Kasada bankakodu alanı, bankada TCMB kodu. |
| Meblag | Net bakiye (cha_tip=0 eksi, diğerleri artı toplanır). |
| DovizCinsi | Döviz cinsi adı (dbo.fn_DovizIsmi). |
SQL (daha okunabilir sürüm)
-- Kasa + Banka bakiye raporu
-- Not: Net hesap mantığı: cha_tip=0 ise (-), değilse (+)
SELECT
Kasa_Kodu = k.kas_kod,
KasaAdi = k.kas_isim,
KasaTipi = dbo.fn_KasaTipi(k.kas_tip),
BankaKodu = k.kas_bankakodu,
Meblag = SUM(CASE WHEN ch.cha_tip = 0 THEN -1 * ch.cha_meblag ELSE ch.cha_meblag END),
DovizCinsi = dbo.fn_DovizIsmi(k.kas_doviz_cinsi)
FROM CARI_HESAP_HAREKETLERI ch
JOIN KASALAR k
ON k.kas_kod = ch.cha_kasa_hizkod
GROUP BY
k.kas_kod, k.kas_isim, k.kas_tip, k.kas_bankakodu, k.kas_doviz_cinsi
UNION ALL
SELECT
Kasa_Kodu = b.ban_muh_kod,
KasaAdi = b.ban_TCMB_Kodu,
KasaTipi = dbo.fn_BankaMevduatCinsi(b.ban_mevduat_tip),
BankaKodu = b.ban_TCMB_Kodu,
Meblag = SUM(CASE WHEN ch.cha_tip = 0 THEN -1 * ch.cha_meblag ELSE ch.cha_meblag END),
DovizCinsi = dbo.fn_DovizIsmi(b.ban_doviz_cinsi)
FROM CARI_HESAP_HAREKETLERI ch
JOIN BANKALAR b
ON b.ban_muh_kod = ch.cha_kasa_hizkod
GROUP BY
b.ban_muh_kod, b.ban_TCMB_Kodu, b.ban_mevduat_tip, b.ban_doviz_cinsi;
Performans notu
Bu rapor en çok CARI_HESAP_HAREKETLERI.cha_kasa_hizkod üzerinden join yaptığı için,
aşağıdaki indeks genelde gözle görülür hız kazandırır:
CREATE INDEX IX_CARI_HAREKET_cha_kasa_hizkod
ON CARI_HESAP_HAREKETLERI (cha_kasa_hizkod)
INCLUDE (cha_tip, cha_meblag);
Not: UNION ALL kullanımı, iki sorgu seti zaten farklı kaynaklardan geldiği için genelde daha hızlıdır
(UNION gibi DISTINCT yapıp ekstra maliyet çıkarmaz).
96 görüntülenme •
0 Yorum •
Son Güncelleme: Aralık 15, 2025