Erp Asistanı Erp Asistanı
Mikro SQL

Mikro Günlük Satış Özeti SQL: Ciro, Adet ve Evrak Sayısı

Mikro ERP veritabanından günlük satış özeti, ciro, adet ve evrak sayısı çeken SQL sorguları. İade düşümlü ve son 30 gün filtreli hazır T-SQL kodları.

Erp Asistanı Erp Asistanı Editör ekibi 6 dk okuma
Mikro Günlük Satış Özeti SQL: Ciro, Adet ve Evrak Sayısı

Mikro ERP kullanan işletmeler için gün sonlarında ciro, satılan ürün adedi ve kesilen fatura sayısını takip etmek hayati önem taşır. Yönetim panellerine veya raporlama araçlarına besleme yapmak için dinamik bir günlük satış özeti çıkarmak gerekir. Bu rehberde, Mikro v16 ve v17 veritabanlarında doğrudan çalıştırabileceğiniz, iadeleri düşülmüş net rakamları veren ve evrak bazında tekilleştirme yapan SQL sorgularını paylaşıyoruz. Tablo yapısı hakkında daha fazla detay için Mikro tablo yapısı rehberi yazımıza göz atabilirsiniz.

Mikro'da satış faturaları tek bir tabloda durmaz. Satış kalemleri, miktar ve tutar bilgileriyle birlikte STOK_HAREKETLERI tablosunda sth_evraktip = 4 (Çıkış Faturası) koduyla tutulur. Doğru bir günlük ciro hesabı için iptal edilmiş evrakları ayıklamak ve iade faturalarını ana cirodan düşmek gerekir. Benzer bir mantıkla yazılmış diğer sorgular için Mikro satış ve fatura raporu SQL içeriğimizi de inceleyebilirsiniz.

1. Temel Günlük Satış Özeti SQL Sorgusu

Bu sorgu, tüm satış geçmişinizi gün bazında gruplar. Her gün için net ciroyu (iadeler düşülmüş), net satılan ürün adedini ve o gün kesilen benzersiz fatura sayısını getirir. Fatura sayısını bulurken seri ve sıra numaralarını birleştirerek tekilleştirme (COUNT DISTINCT) uyguluyoruz.

SELECT
    CAST(sth_tarih AS date) AS [Tarih],
    SUM(CASE WHEN sth_normal_iade = 0 THEN sth_tutar ELSE -sth_tutar END) AS [Net Ciro],
    SUM(CASE WHEN sth_normal_iade = 0 THEN sth_miktar ELSE -sth_miktar END) AS [Net Miktar],
    COUNT(DISTINCT CONCAT(sth_evrakno_seri, '-', sth_evrakno_sira)) AS [Evrak Sayısı]
FROM STOK_HAREKETLERI
WHERE sth_iptal = 0
  AND sth_evraktip = 4
GROUP BY CAST(sth_tarih AS date)
ORDER BY [Tarih] DESC;

2. Son 30 Günlük Satış Özeti (Filtreli)

Veritabanı boyutunuz büyükse, tüm geçmişi çekmek performansı olumsuz etkileyebilir. Aşağıdaki sorgu, DATEADD fonksiyonu kullanarak sadece son 30 günün satış özetini getirir. Bu sorgu günlük gösterge panelleri (dashboard) için idealdir.

SELECT
    CAST(sth_tarih AS date) AS [Tarih],
    SUM(CASE WHEN sth_normal_iade = 0 THEN sth_tutar ELSE -sth_tutar END) AS [Net Ciro],
    SUM(CASE WHEN sth_normal_iade = 0 THEN sth_miktar ELSE -sth_miktar END) AS [Net Miktar],
    COUNT(DISTINCT CONCAT(sth_evrakno_seri, '-', sth_evrakno_sira)) AS [Evrak Sayısı]
FROM STOK_HAREKETLERI
WHERE sth_iptal = 0
  AND sth_evraktip = 4
  AND sth_tarih >= DATEADD(day, -30, GETDATE())
GROUP BY CAST(sth_tarih AS date)
ORDER BY [Tarih] DESC;

3. KDV Dahil ve Hariç Detaylı Günlük Satış Analizi

Muhasebe mutabakatları ve finansal analizler için matrah (KDV hariç tutar) ile KDV tutarının ayrı ayrı görülmesi gerekir. Bu sorgu, günlük bazda net matrahı, net KDV tutarını ve KDV dahil toplam net ciroyu hesaplar.

SELECT
    CAST(sth_tarih AS date) AS [Tarih],
    SUM(CASE WHEN sth_normal_iade = 0 THEN sth_tutar ELSE -sth_tutar END) AS [Net Matrah],
    SUM(CASE WHEN sth_normal_iade = 0 THEN sth_vergi ELSE -sth_vergi END) AS [Net KDV],
    SUM(CASE WHEN sth_normal_iade = 0 THEN (sth_tutar + sth_vergi) ELSE -(sth_tutar + sth_vergi) END) AS [KDV Dahil Net Ciro],
    SUM(CASE WHEN sth_normal_iade = 0 THEN sth_miktar ELSE -sth_miktar END) AS [Net Miktar]
FROM STOK_HAREKETLERI
WHERE sth_iptal = 0
  AND sth_evraktip = 4
GROUP BY CAST(sth_tarih AS date)
ORDER BY [Tarih] DESC;

Sorgu Sonuçlarının Yapısı

Yukarıdaki sorguları çalıştırdığınızda elde edeceğiniz veri yapısı ve kolonların anlamları şu şekildedir:

Kolon Adı Veri Tipi Açıklama
Tarih date Satış hareketinin gerçekleştiği gün (saatsiz)
Net Ciro / Matrah float İadeler düşülmüş, KDV hariç toplam satış tutarı
Net KDV float Satış faturalarından iadeler düşüldükten sonra kalan net KDV
KDV Dahil Net Ciro float Matrah ve KDV toplamından oluşan net tahakkuk tutarı
Net Miktar float Satılan toplam ürün adedi (iade edilen adetler düşülmüştür)
Evrak Sayısı int Gün içinde düzenlenen benzersiz fatura sayısı

Hazır sorgu kütüphanemizi genişletmek isterseniz Mikro hazır SQL sorguları makalemize de göz atabilirsiniz.

Sık yapılan hatalar

  • İptal Satırlarını Unutmak: sth_iptal = 0 filtresini yazmamak, silinmiş veya iptal edilmiş faturaların da toplama dahil olmasına ve cironun hatalı yüksek çıkmasına neden olur.
  • İadeleri Düşmemek: sth_normal_iade kontrolü yapmadan doğrudan SUM(sth_tutar) almak gerçek ciroyu yansıtmaz. İadeler her zaman eksi değer olarak hesaba katılmalıdır.
  • Tarih Gruplamasında Saat Hatası: sth_tarih kolonu datetime tipindedir. Doğrudan bu kolona göre gruplama yaparsanız, her farklı saat/dakika için ayrı satır oluşur. Bu yüzden mutlaka CAST(sth_tarih AS date) dönüşümü yapılmalıdır.
  • Evrak Sayısını Yanlış Saymak: COUNT(sth_evrakno_sira) kullanmak fatura içindeki her bir satırı (kalemi) sayar. Fatura sayısını bulmak için seri ve sıra numarası birlikte DISTINCT ile tekilleştirilmelidir.

Sık sorulanlar

Soru? Bu sorgularda perakende ve toptan satışlar birlikte mi gelir? Cevap: Evet, sth_evraktip = 4 filtresi hem toptan hem de perakende çıkış faturalarını kapsar. Eğer sadece toptan satışları istiyorsanız sorguya AND sth_cins = 0, sadece perakende için AND sth_cins = 1 filtresini ekleyebilirsiniz.

Soru? İrsaliyeler bu ciroya dahil midir? Cevap: Hayır, bu sorgu sadece faturalanmış satışları (sth_evraktip = 4) baz alır. İrsaliyeler henüz faturalanmadığı için resmi ciroya dahil edilmemiştir. İrsaliyeleri de dahil etmek isterseniz evrak tipi filtresini genişletmeniz gerekir.

Soru? SQL sorgusunda dövizli satışlar nasıl hesaplanıyor? Cevap: Yukarıdaki sorgular yerel para birimi (TL) cinsinden tutarları getirir. Dövizli raporlama için sth_har_doviz_cinsi ve sth_har_doviz_kuru kolonlarını kullanarak çevrim yapmanız gerekir.


Günlük satış raporlarınızı otomatikleştirmek, her gün SQL çalıştırmak yerine verilerinizi canlı panellerde izlemek mi istiyorsunuz? Erp Asistanı ile Mikro veritabanınızı kolayca bağlayabilir, doğal dille konuşarak yeni raporlar üretebilir ve Excel raporlarınızı saniyeler içinde hazırlayabilirsiniz.

Erp Asistanı'nı ücretsiz deneyin ve SQL raporlamayı kolaylaştırın →

Bu yazıyı paylaş
Konuşarak raporlayın

Mikro'da SQL ve raporu konuşarak alın

Türkçe sorunuzu yazın, şemanıza uygun çalışan SQL'i ya da hazır uygulamanızı saniyeler içinde alın. Kredi kartı gerekmez.