Erp Asistanı Erp Asistanı
Netsis SQL

Netsis Yeni Müşteri Kazanımı SQL: Cari Büyüme Trendi

Netsis TBLCASABIT kayıt tarihi ve TBLFATUIRS ile aylık yeni müşteri kazanımı, ilk fatura cirosu ve aktifleşme süresi analizini SQL ile raporlayın.

Erp Asistanı Erp Asistanı Editör ekibi 10 dk okuma
Netsis Yeni Müşteri Kazanımı SQL: Cari Büyüme Trendi

İşletmelerin büyüme hızını ölçerken yalnızca toplam ciroya bakmak yanıltıcı olabilir. Sağlıklı bir büyüme, şirketin portföyüne düzenli olarak ne kadar yeni müşteri eklediği ve bu müşterilerin ne kadarlık bir başlangıç cirosu ürettiğiyle doğrudan ilişkilidir. Netsis ERP üzerinde bu analizi yapmanın temel başlangıç noktası TBLCASABIT tablosundaki KAYITTARIHI alanıdır. Ancak sadece kart açılış tarihini listelemek tek başına yeterli değildir; çünkü açılan her cari kart hemen faturaya veya tahsilata dönüşmez. Bu rehberde, Netsis veritabanında yeni müşteri kazanımını, ilk satış faturası tarihini (TBLFATUIRS), ilk fatura sepet tutarını ve kart açılışından ilk satışa kadar geçen aktivasyon süresini T-SQL ile nasıl raporlayacağınızı inceliyoruz. Temel veri yapıları hakkında detaylı bilgi için Netsis tablo yapısı rehberi sayfamıza da göz atabilirsiniz.

Kart Kayıt Tarihi ile İlk Hareket Tarihi Arasındaki Fark

Netsis veritabanında müşteri büyüme trendi incelenirken en sık düşülen tuzak, TBLCASABIT.KAYITTARIHI değerini doğrudan "müşterinin ilk alışveriş tarihi" olarak kabul etmektir. Sahada plasiyerler potansiyel carileri açabilir, teklif aşamasında kart tanımlanabilir veya entegrasyon sistemleri üzerinden toplu cari aktarımı yapılmış olabilir. Bir carinin gerçek anlamda müşteri kimliği kazanması, ilk satış faturasının kesildiği andır.

Rapor Alanı Kaynak Tablo / Kolon Tanım ve İş Mantığı Dikkat Edilecek Noktalar
Cari Kayıt Tarihi TBLCASABIT.KAYITTARIHI Kartın Netsis'te açıldığı sistem tarihi Teklif veya potansiyel kartlar dahil olabilir.
İlk Satış Tarihi TBLFATUIRS.TARIH (MIN) Müşteriye kesilen ilk satış faturası FTIRSIP = '1' filtresi zorunludur.
İlk Fatura Tutarı TBLFATUIRS.GENELTOPLAM İlk satış faturasının net toplam tutarı Müşteri başlangıç sepet büyüklüğünü verir.
İlk Hareket Tarihi TBLCAHAR.TARIH (MIN) Finansal ilk kayıt (devir, dekont vb.) Açılış fişleri yanıltıcı olabilir.
Aktivasyon Süresi DATEDIFF(day, ...) Kayıt ile ilk fatura arasındaki gün Satış döngüsü hızını ve mevsimselliği gösterir.

Bu nedenle analizlerimizi üç aşamalı kurgulamalıyız:

  1. Kart açılış trendi (potansiyel müşteri havuzu genişleme hızı),
  2. Aktifleşen müşteri oranı (satışa dönüşüm başarısı),
  3. Kohort bazlı ilk ciro büyüklüğü.

1. Aylık Yeni Cari Kart Açılış Sayıları

İlk sorgumuz, dönemsel olarak kaç adet yeni müşteri (CARI_TIP = 'A') kartı açıldığını gösterir. Bu sorgu, pazarlama ve saha ekiplerinin yeni kontak yaratma performansını ve mevsimsel dalgalanmaları izlemek için kullanılır.

-- Aylık yeni müşteri kart açılış trendi
SELECT 
    YEAR(c.KAYITTARIHI) AS [Kayit_Yili],
    MONTH(c.KAYITTARIHI) AS [Kayit_Ayi],
    COUNT(c.CARI_KOD) AS [Acilan_Cari_Sayisi]
FROM TBLCASABIT c
WHERE c.CARI_TIP = 'A'
  AND c.KAYITTARIHI IS NOT NULL
GROUP BY YEAR(c.KAYITTARIHI), MONTH(c.KAYITTARIHI)
ORDER BY [Kayit_Yili] DESC, [Kayit_Ayi] DESC;

2. Cari Kartı ile İlk Satış Faturasını Birleştirme

Bir carinin açılış tarihini, ilk satış faturası tarihini, ilk fatura numarasını ve tutarını getirmek için OUTER APPLY yapısı en performanslı yöntemdir. TBLFATUIRS üzerinde FTIRSIP = '1' filtresiyle yalnızca satış faturaları taranır ve iade faturaları (TIPI = 4) dışarıda bırakılır.

-- Her carinin kayıt tarihi, ilk satış faturası ve ilk fatura tutarı
SELECT 
    c.CARI_KOD,
    c.CARI_ISIM,
    c.KAYITTARIHI AS [Kayit_Tarihi],
    c.PLASIYER_KODU,
    ilk_fat.TARIH AS [Ilk_Satis_Tarihi],
    ilk_fat.FATIRS_NO AS [Ilk_Fatura_No],
    ilk_fat.GENELTOPLAM AS [Ilk_Fatura_Tutari],
    DATEDIFF(day, c.KAYITTARIHI, ilk_fat.TARIH) AS [Aktivasyon_Gun_Farki],
    CASE 
        WHEN ilk_fat.FATIRS_NO IS NULL THEN 'Islemsiz (Pasif)'
        ELSE 'Aktif Musteri'
    END AS [Musteri_Durumu]
FROM TBLCASABIT c
OUTER APPLY (
    SELECT TOP 1 
        f.FATIRS_NO,
        f.TARIH,
        f.GENELTOPLAM
    FROM TBLFATUIRS f
    WHERE f.CARI_KODU = c.CARI_KOD
      AND f.FTIRSIP = '1'
      AND f.TIPI <> 4
    ORDER BY f.TARIH ASC, f.FATIRS_NO ASC
) ilk_fat
WHERE c.CARI_TIP = 'A'
  AND c.KAYITTARIHI >= '20250101'
ORDER BY c.KAYITTARIHI DESC;

Cari hesapların genel bakiye ve hareket detayları için Netsis cari ekstre ve bakiye SQL yazımızı inceleyebilirsiniz.

3. Kartı Açılıp Hiç Alışveriş Yapmayan (Hayalet) Cariler

ERP sistemlerinde kartı açılan ancak belirlenen süre boyunca hiç fatura kesilmeyen cariler satış hunisinde tıkanıklık olduğunu gösterir. Aşağıdaki sorgu, son 6 ayda açılmış fakat henüz tek bir satış faturası dahi kesilmemiş carileri listeler:

-- Kaydı açılmış fakat hiç satış faturası kesilmemiş cariler
SELECT 
    c.CARI_KOD,
    c.CARI_ISIM,
    c.CARI_IL,
    c.PLASIYER_KODU,
    c.KAYITTARIHI,
    DATEDIFF(day, c.KAYITTARIHI, GETDATE()) AS [Gecen_Gun_Sayisi]
FROM TBLCASABIT c
WHERE c.CARI_TIP = 'A'
  AND c.KAYITTARIHI >= DATEADD(month, -6, GETDATE())
  AND NOT EXISTS (
      SELECT 1 
      FROM TBLFATUIRS f 
      WHERE f.CARI_KODU = c.CARI_KOD 
        AND f.FTIRSIP = '1'
  )
ORDER BY c.KAYITTARIHI DESC;

4. Kohort Analizi: Aylık Yeni Müşteri Büyümesi ve İlk Sepet Cirosu

Üst yönetimin ihtiyaç duyduğu aylık büyüme trendi tablosudur. İlgili ayda açılan carilerin kaç tanesinin ilk ayında satışa döndüğü, kaç tanesinin toplamda aktifleştiği ve açılış ayındaki ilk satış cirosu tek bir raporda özetlenir.

-- Aylık yeni müşteri kohort büyüme ve ciro trendi
WITH CariIlkSatis AS (
    SELECT 
        c.CARI_KOD,
        c.KAYITTARIHI,
        ilk_fat.TARIH AS IlkSatisTarihi,
        ilk_fat.GENELTOPLAM AS IlkFaturaTutari
    FROM TBLCASABIT c
    OUTER APPLY (
        SELECT TOP 1 f.TARIH, f.GENELTOPLAM
        FROM TBLFATUIRS f
        WHERE f.CARI_KODU = c.CARI_KOD
          AND f.FTIRSIP = '1'
          AND f.TIPI <> 4
        ORDER BY f.TARIH ASC, f.FATIRS_NO ASC
    ) ilk_fat
    WHERE c.CARI_TIP = 'A'
      AND c.KAYITTARIHI IS NOT NULL
)
SELECT 
    YEAR(KAYITTARIHI) AS [Kayit_Yili],
    MONTH(KAYITTARIHI) AS [Kayit_Ayi],
    COUNT(CARI_KOD) AS [Toplam_Acilan_Kart],
    COUNT(IlkSatisTarihi) AS [Satisa_Donen_Musteri],
    COUNT(CARI_KOD) - COUNT(IlkSatisTarihi) AS [Hareketsiz_Kalan_Kart],
    CAST(COUNT(IlkSatisTarihi) * 100.0 / NULLIF(COUNT(CARI_KOD), 0) AS DECIMAL(5, 2)) AS [Donusum_Orani_Yuzde],
    ISNULL(SUM(IlkFaturaTutari), 0) AS [Toplam_Ilk_Fatura_Cirosu],
    ISNULL(AVG(IlkFaturaTutari), 0) AS [Ortalama_Ilk_Sepet_Tutari]
FROM CariIlkSatis
WHERE KAYITTARIHI >= '20240101'
GROUP BY YEAR(KAYITTARIHI), MONTH(KAYITTARIHI)
ORDER BY [Kayit_Yili] DESC, [Kayit_Ayi] DESC;

Daha fazla hazır rapor şablonu için Netsis hazır SQL sorguları rehberimize başvurabilirsiniz.

5. Temsilci (Plasiyer) Bazında Yeni Müşteri Kazanım Başarısı

Yeni müşteri ediniminin hangi satış temsilcisi tarafından sağlandığını ve bu müşterilerin ne kadar ciro ürettiğini ölçmek prim ve hedef yönetiminde kritik rol oynar.

-- Plasiyer bazında yeni müşteri kazanımı ve ciro katkısı
SELECT 
    ISNULL(c.PLASIYER_KODU, 'TANIMSIZ') AS [Plasiyer_Kodu],
    COUNT(c.CARI_KOD) AS [Acilan_Musteri_Sayisi],
    COUNT(ilk_fat.FATIRS_NO) AS [Aktiflesen_Musteri_Sayisi],
    ISNULL(SUM(ilk_fat.GENELTOPLAM), 0) AS [Toplam_Ilk_Satis_Cirosu],
    ISNULL(AVG(ilk_fat.GENELTOPLAM), 0) AS [Ortalama_Ilk_Satis_Tutari]
FROM TBLCASABIT c
OUTER APPLY (
    SELECT TOP 1 f.FATIRS_NO, f.GENELTOPLAM
    FROM TBLFATUIRS f
    WHERE f.CARI_KODU = c.CARI_KOD
      AND f.FTIRSIP = '1'
      AND f.TIPI <> 4
    ORDER BY f.TARIH ASC, f.FATIRS_NO ASC
) ilk_fat
WHERE c.CARI_TIP = 'A'
  AND c.KAYITTARIHI >= '20250101'
GROUP BY c.PLASIYER_KODU
ORDER BY [Toplam_Ilk_Satis_Cirosu] DESC;

Trend Yorumu ve Mevsimsellik Analizi

Yeni müşteri kazanım verilerini yorumlarken şu dinamikleri dikkate almak gerekir:

  • Mevsimsel Kart Yığılmaları: Özellikle yıl sonu anlaşma dönemlerinde (Aralık-Ocak) veya sektörel fuar zamanlarında açılan cari sayısı tepe yapar; ancak bu carilerin faturaya dönüşümü 2-3 ayı bulabilir. Dönüşüm oranını incelerken en az 60 günlük bir olgunlaşma payı bırakılmalıdır.
  • Teklif Aşamasında Açılan Kartlar: Eğer firmanızda teklif verilmeden önce Netsis'te cari açma zorunluluğu varsa, pasif cari oranı yüksek görünecektir. Bu durum bir veri kirliliği değil, satış hunisinin genişliğini temsil eder.
  • Entegrasyon Kayıtları: E-ticaret veya B2B entegrasyonları tek seferlik müşteriler için otomatik cari kartı açıyorsa KAYITTARIHI şişebilir. Raporlarınızda GRUP_KODU veya RAPOR_KODU1 filtreleri ile B2B/B2C ayrımını netleştirin.

Sık yapılan hatalar

  • Kayıt tarihini bakiye veya ciro tarihi sanmak: TBLCASABIT.KAYITTARIHI yalnızca kartın oluşturulduğu tarihtir. Finansal hareket tarihi için TBLCAHAR.TARIH veya fatura tarihi için TBLFATUIRS.TARIH kullanılmalıdır.
  • CARI_TIP filtresini unutmak: Satıcılar ('S'), toptancılar ('T') veya müstahsiller ('M') aynı tabloda tutulur. Müşteri analizi yaparken CARI_TIP = 'A' filtresi konulmazsa tedarikçi açılışları müşteri büyümesi gibi görünür.
  • İade faturalarını ilk satış saymak: TBLFATUIRS.TIPI = 4 iade faturalarıdır. İlk satış tespit edilirken iade faturaları filtrelenmezse ilk hareket yanıltıcı olabilir.
  • SUBE_KODU filtresini ihmal etmek: Çok şubeli Netsis kurulumlarında fatura başlıkları şubelere göre ayrılır. Konsolide bakılmıyorsa SUBE_KODU filtresi eklenmelidir.
  • KAYITTARIHI null olan eski kayıtları hesaba katmamak: Çok eski Netsis sürümlerinden aktarılan veya manuel veri tabanı müdahalelerinde KAYITTARIHI boş kalmış olabilir. Bu kayıtlar için WHERE KAYITTARIHI IS NOT NULL kontrolü eklenmelidir.

Sık sorulanlar

Cari kartı açıldıktan kaç gün sonra ilk fatura kesildiğini nasıl hesaplarım? DATEDIFF(day, c.KAYITTARIHI, ilk_fat.TARIH) fonksiyonunu kullanarak kart açılış tarihi ile ilk satış faturası tarihi arasındaki gün farkını hesaplayabilirsiniz.

Kartı açılan müşterinin sadece ilk faturasını değil, ilk 3 aydaki toplam cirosunu nasıl görebilirim? TBLFATUIRS tablosunu f.CARI_KODU = c.CARI_KOD AND f.TARIH BETWEEN c.KAYITTARIHI AND DATEADD(month, 3, c.KAYITTARIHI) koşulu ile bağlayıp SUM(f.GENELTOPLAM) alarak ilk 90 günlük müşteri değerini hesaplayabilirsiniz.

Netsis'te aktif ve pasif cari ayrımını SQL ile nasıl yapabilirim? Son 6 ay veya 1 yıl içinde TBLCAHAR veya TBLFATUIRS tablosunda hiç hareketi olmayan carileri NOT EXISTS koşulu ile filtreleyerek pasif portföy olarak etiketleyebilirsiniz.


Yeni müşteri kazanımı ve kohort analizlerini SQL'de manuel yazmak yerine işletmenizin canlı Netsis veritabanına bağlanan yapay zeka asistanı ile konuşarak anlık alabilirsiniz. Erp Asistanı'na ücretsiz üye olun, büyüme trendlerinizi tek tıkla raporlayın.

Ücretsiz üye olun, büyüme trendi raporunuzu hemen alın →

Bu yazıyı paylaş
Konuşarak raporlayı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.