Mikro Erp Kasa Banka Bakiye Raporu

Mikro Erp Kasa Banka Bakiye Raporu

Mikro Erp Kasa Banka Bakiye Raporu

Posted on Aralık 15, 2025 by Şaban ÇİÇEK
Mikro Erp Kasa Banka Bakiye Raporu

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 = 0 olan 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
Yorumlar 0
Yorum Yap

Henüz yorum yok. İlk yorumu siz yapın!