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ı
Editör ekibi
6 dk okuma
İçindekiler
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 = 0filtresini 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_iadekontrolü yapmadan doğrudanSUM(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_tarihkolonu 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 mutlakaCAST(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ı birlikteDISTINCTile 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 →
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.