Erp Asistanı Erp Asistanı
Netsis SQL

Netsis Plasiyer Bazlı Satış Raporu SQL: PLASIYER_KODU ile Performans

6 dk okuma Erp Asistanı
Netsis Plasiyer Bazlı Satış Raporu SQL: PLASIYER_KODU ile Performans

Netsis kullanıcıları satış ekiplerini takip etmek için plasiyer raporlarına ihtiyaç duyar. TBLSTHAR tablosundaki PLASIYER_KODU alanı sayesinde, fatura kalemleri üzerinden her plasiyerin cirosunu ve adedini sorgulamak mümkündür. Bu yazıda, sadece net satış cirosunu hesaplayan, hataları önleyen ve iadeyi denkleştiren SQL örnekleri bulacaksınız. Tablo ve kod mantığı için Netsis tablo yapısı rehberine, hazır sorgu örnekleri için Netsis hazır SQL sorgularına göz atın.

Plasiyer Nedir, Netsis'te Nasıl Tutulur?

Her satış faturası kalemine (TBLSTHAR satırına) bir plasiyer kodu atanabilir. Bu kod PLASIYER_KODU (varchar(8)) alanında durur. Aynı kod TBLCASABIT (cari kart) üzerinde de bulunur; ancak hareket bazında raporlama için TBLSTHAR.PLASIYER_KODU kullanılması daha sağlıklıdır çünkü cari karttaki değer sabitken, fatura bazında farklı plasiyer ataması yapılabilir.

Raporlamada dikkat edilmesi gereken noktalar:

Alan Anlamı Açıklama
PLASIYER_KODU Plasiyer kodu TBLSTHAR'da doğrudan bulunur
STHAR_FTIRSIP Belge tipi '1' = Satış faturası
STHAR_GCKOD Giriş/Çıkış 'C' = Çıkış (satış), 'G' = Giriş (iade)

Plasiyer Bazında Net Ciro Raporu SQL

Aşağıdaki sorgu, satış faturalarındaki (STHAR_FTIRSIP='1') çıkış ve iadeleri denkleştirerek plasiyer başına net ciroyu (miktar x net birim fiyat) verir. İade faturaları STHAR_GCKOD='G' olarak gelir, bu yüzden CASE yapısıyla çıkışlar toplanırken girişler çıkarılır.

SELECT PLASIYER_KODU,
       SUM(CASE WHEN STHAR_GCKOD = 'C' THEN STHAR_GCMIK * STHAR_NF
                WHEN STHAR_GCKOD = 'G' AND STHAR_FTIRSIP = '1' THEN -STHAR_GCMIK * STHAR_NF
           END) AS NetCiro
FROM TBLSTHAR
WHERE STHAR_FTIRSIP = '1'
  AND SUBE_KODU = 0
GROUP BY PLASIYER_KODU
ORDER BY NetCiro DESC;

SUBE_KODU=0 varsayılmıştır; çok şubeli yapıda kendi şube kodunuzu yazın. Tarih filtresi eklemediğinizde tüm dönemleri kapsar; raporu daraltmak için aşağıdaki örneğe bakın.

Plasiyer-Müşteri Kırılımlı Satış Analizi

Plasiyerin hangi müşterilere sattığını görmek, performans değerlendirmede kritiktir. TBLCASABIT ile birleştirerek müşteri ismini alabiliriz.

SELECT st.PLASIYER_KODU, st.STHAR_CARIKOD, c.CARI_ISIM,
       SUM(CASE WHEN st.STHAR_GCKOD = 'C' THEN st.STHAR_GCMIK * st.STHAR_NF
                WHEN st.STHAR_GCKOD = 'G' AND st.STHAR_FTIRSIP = '1' THEN -st.STHAR_GCMIK * st.STHAR_NF
           END) AS NetCiro
FROM TBLSTHAR st
LEFT JOIN TBLCASABIT c ON c.CARI_KOD = st.STHAR_CARIKOD
WHERE st.STHAR_FTIRSIP = '1'
  AND st.SUBE_KODU = 0
  AND st.STHAR_TARIH >= '20250101' AND st.STHAR_TARIH < '20260101'
GROUP BY st.PLASIYER_KODU, st.STHAR_CARIKOD, c.CARI_ISIM
ORDER BY st.PLASIYER_KODU, NetCiro DESC;

Tarih aralığını ihtiyacınıza göre değiştirebilirsiniz. Müşteri bazında net ciro, tahsilat riski öngörüsü için de kullanılabilir.

Plasiyer Bazında Aylık Ciro Karşılaştırması

Dönem karşılaştırması, plasiyerin yıl içindeki trendini ortaya koyar.

SELECT PLASIYER_KODU, YEAR(STHAR_TARIH) Yil, MONTH(STHAR_TARIH) Ay,
       SUM(CASE WHEN STHAR_GCKOD = 'C' THEN STHAR_GCMIK * STHAR_NF
                WHEN STHAR_GCKOD = 'G' AND STHAR_FTIRSIP = '1' THEN -STHAR_GCMIK * STHAR_NF
           END) AS NetCiro
FROM TBLSTHAR
WHERE STHAR_FTIRSIP = '1'
  AND SUBE_KODU = 0
  AND STHAR_TARIH >= '20240101' AND STHAR_TARIH < '20250101'
GROUP BY PLASIYER_KODU, YEAR(STHAR_TARIH), MONTH(STHAR_TARIH)
ORDER BY Yil, Ay, PLASIYER_KODU;

Plasiyer Başına Net Adet Raporu

Ciro kadar satılan ürün adedi de önemlidir. Aynı mantıkla miktar bazında toplam alabiliriz.

SELECT PLASIYER_KODU,
       SUM(CASE WHEN STHAR_GCKOD = 'C' THEN STHAR_GCMIK
                WHEN STHAR_GCKOD = 'G' AND STHAR_FTIRSIP = '1' THEN -STHAR_GCMIK
           END) AS NetMiktar,
       COUNT(DISTINCT FISNO) AS FaturaSayisi
FROM TBLSTHAR
WHERE STHAR_FTIRSIP = '1'
  AND SUBE_KODU = 0
  AND STHAR_TARIH >= '20250101' AND STHAR_TARIH < '20260101'
GROUP BY PLASIYER_KODU
ORDER BY NetMiktar DESC;

Fatura sayısı, plasiyerin ziyaret sıklığı hakkında fikir verir.

Sık yapılan hatalar

  • FTIRSIP filtresini unutmak: Alış faturaları, irsaliyeler veya transfer hareketleri rapora karışır, ciro yanlış çıkar.
  • SUBE_KODU'nü atlamak: Çok şubeli kurulumda tüm şubelerin satışları birleşir, şube müdürleri yanlış rapor alır.
  • İadeyi düşmemek: Sadece STHAR_GCKOD='C' diyerek iade faturalarını görmezden gelmek net ciroyu olduğundan yüksek gösterir.
  • Tarih filtresiz çalışmak: Tüm yılları kapsayan dev bir sonuç dönmekle kalmaz, performansı da düşürür.
  • PLASIYER_KODU boş olanları küçümsemek: Atanmamış plasiyerli hareketler genelde "atanmamış" grubu olarak ayrıca raporlanmalıdır (WHERE PLASIYER_KODU IS NOT NULL eklenebilir).

Sık sorulanlar

Soru: Plasiyer adını nasıl görürüm? Cevap: Plasiyer tanım tablosu (eğer varsa) ayrı bir tablodur; bu yazıda sadece TBLSTHAR'daki PLASIYER_KODU ile çalıştık. İsimleri almak için ilgili tanım tablosuna LEFT JOIN yapmanız gerekir. Erp Asistanı bu tür JOIN'leri sizin için otomatik oluşturur.

Soru: İade faturası satış cirosundan nasıl düşülüyor? Cevap: İade faturaları STHAR_FTIRSIP='1' ve STHAR_GCKOD='G' olarak kaydedilir. CASE yapısıyla giriş hareketlerine negatif değer atanarak net ciro hesaplanır.

Soru: Sadece tek bir plasiyerin raporunu nasıl alırım? Cevap: WHERE koşuluna AND PLASIYER_KODU = 'PL01' ekleyin. PL01 yerine kendi plasiyer kodunuzu yazın.

Soru: Bu sorgular Excel veya başka bir araca aktarılır mı? Cevap: SSMS'den kopyalanabilir; Erp Asistanı raporu doğrudan tablo olarak gösterir ve tek tıkla Excel'e aktarma yapmanızı sağlar.


Plasiyer raporları satış yönetiminin temelidir. Bu sorguları kendi ihtiyacınıza göre uyarlayarak daha detaylı analizler yapabilirsiniz. Netsis üzerinde doğal dille raporlama yapmak ve tüm sorgularınızı anında üretmek için Erp Asistanı'na ücretsiz üye olun.

Ücretsiz üye olun, istediğiniz plasiyer raporunu anında alın →

Netsis'te 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.