Erp Asistanı Erp Asistanı
Netsis SQL

Netsis Hazır SQL Sorguları: Kopyala-Çalıştır 10 Örnek (Stok, Cari, Fatura)

5 dk okuma Erp Asistanı
Netsis Hazır SQL Sorguları: Kopyala-Çalıştır 10 Örnek (Stok, Cari, Fatura)

Netsis kullanıcılarının en sık aradığı şey hazır, çalışan SQL örnekleridir: eldeki stok, cari bakiye, aylık ciro, en çok satan ürünler... Bu yazıda en çok ihtiyaç duyulan 10 sorguyu kopyala-çalıştır hâlde veriyoruz. Hepsi gerçek bir Netsis veritabanında test edildi. Tablo mantığına hâkim değilseniz önce Netsis tablo yapısı rehberine göz atın.

Çok şubeli kurulumlarda sorgulara SUBE_KODU filtresi eklemeyi unutmayın (tek şubede genellikle 0).

1. Stok kartı listesi

SELECT STOK_KODU, STOK_ADI, GRUP_KODU, OLCU_BR1, SATIS_FIAT1, KDV_ORANI
FROM TBLSTSABIT
ORDER BY STOK_KODU;

2. Eldeki stok miktarı (hareketten)

STHAR_GCKOD kolonu yönü verir: G giriş, C çıkış.

SELECT s.STOK_KODU, st.STOK_ADI,
       SUM(CASE WHEN s.STHAR_GCKOD = 'G' THEN s.STHAR_GCMIK ELSE -s.STHAR_GCMIK END) AS [Eldeki Miktar]
FROM TBLSTHAR s
JOIN TBLSTSABIT st ON st.STOK_KODU = s.STOK_KODU
GROUP BY s.STOK_KODU, st.STOK_ADI
HAVING SUM(CASE WHEN s.STHAR_GCKOD = 'G' THEN s.STHAR_GCMIK ELSE -s.STHAR_GCMIK END) <> 0
ORDER BY st.STOK_ADI;

3. Depo bazında stok (hazır toplam tablosundan)

TBLSTOKPH şube + depo kırılımında giriş/çıkış toplamlarını hazır tutar; büyük veride hareket tablosunu taramaktan çok daha hızlıdır.

SELECT ph.DEPO_KODU, ph.STOK_KODU, st.STOK_ADI,
       ph.TOP_GIRIS_MIK - ph.TOP_CIKIS_MIK AS [Depo Bakiyesi]
FROM TBLSTOKPH ph
JOIN TBLSTSABIT st ON st.STOK_KODU = ph.STOK_KODU
WHERE ph.TOP_GIRIS_MIK - ph.TOP_CIKIS_MIK <> 0
ORDER BY ph.DEPO_KODU, st.STOK_ADI;

4. Cari bakiye listesi

Netsis cari hareketinde borç ve alacak ayrı kolonlardadır; bakiye ikisinin farkıdır.

SELECT c.CARI_KOD, cs.CARI_ISIM,
       SUM(c.BORC) AS [Toplam Borç],
       SUM(c.ALACAK) AS [Toplam Alacak],
       SUM(c.BORC - c.ALACAK) AS [Bakiye]
FROM TBLCAHAR c
JOIN TBLCASABIT cs ON cs.CARI_KOD = c.CARI_KOD
GROUP BY c.CARI_KOD, cs.CARI_ISIM
HAVING SUM(c.BORC - c.ALACAK) <> 0
ORDER BY [Bakiye] DESC;

5. Cari ekstre (yürüyen bakiyeli)

SELECT TARIH, BELGE_NO, ACIKLAMA, BORC, ALACAK,
       SUM(BORC - ALACAK) OVER (ORDER BY TARIH, INC_KEY_NUMBER
           ROWS UNBOUNDED PRECEDING) AS [Yürüyen Bakiye]
FROM TBLCAHAR
WHERE CARI_KOD = '120-001'
ORDER BY TARIH, INC_KEY_NUMBER;

120-001 yerine ekstresini istediğiniz carinin kodunu yazın.

6. Aylık net satış cirosu

STHAR_FTIRSIP = '1' satış faturası kalemlerini seçer; iade satırları STHAR_GCKOD yönüyle otomatik düşülür.

SELECT YEAR(STHAR_TARIH) AS [Yıl], MONTH(STHAR_TARIH) AS [Ay],
       SUM(CASE WHEN STHAR_GCKOD = 'C' THEN STHAR_GCMIK * STHAR_NF
                ELSE -STHAR_GCMIK * STHAR_NF END) AS [Net Ciro]
FROM TBLSTHAR
WHERE STHAR_FTIRSIP = '1'
GROUP BY YEAR(STHAR_TARIH), MONTH(STHAR_TARIH)
ORDER BY [Yıl], [Ay];

7. En çok satan ürünler

SELECT TOP 20 s.STOK_KODU, st.STOK_ADI,
       SUM(s.STHAR_GCMIK) AS [Satış Miktarı],
       SUM(s.STHAR_GCMIK * s.STHAR_NF) AS [Satış Tutarı]
FROM TBLSTHAR s
JOIN TBLSTSABIT st ON st.STOK_KODU = s.STOK_KODU
WHERE s.STHAR_FTIRSIP = '1' AND s.STHAR_GCKOD = 'C'
GROUP BY s.STOK_KODU, st.STOK_ADI
ORDER BY [Satış Tutarı] DESC;

8. En çok ciro yapan müşteriler

SELECT TOP 20 s.STHAR_CARIKOD, c.CARI_ISIM,
       SUM(CASE WHEN s.STHAR_GCKOD = 'C' THEN s.STHAR_GCMIK * s.STHAR_NF
                ELSE -s.STHAR_GCMIK * s.STHAR_NF END) AS [Ciro]
FROM TBLSTHAR s
LEFT JOIN TBLCASABIT c ON c.CARI_KOD = s.STHAR_CARIKOD
WHERE s.STHAR_FTIRSIP = '1'
GROUP BY s.STHAR_CARIKOD, c.CARI_ISIM
ORDER BY [Ciro] DESC;

9. Satış faturası listesi

Fatura ve irsaliye başlıkları aynı tablodadır (TBLFATUIRS); FTIRSIP = '1' satış faturalarını seçer.

SELECT f.FATIRS_NO, f.TARIH, f.CARI_KODU, c.CARI_ISIM,
       f.BRUTTUTAR, f.KDV, f.GENELTOPLAM
FROM TBLFATUIRS f
LEFT JOIN TBLCASABIT c ON c.CARI_KOD = f.CARI_KODU
WHERE f.FTIRSIP = '1'
ORDER BY f.TARIH DESC, f.FATIRS_NO DESC;

10. Müşteri siparişi listesi

SELECT m.FATIRS_NO, m.TARIH, m.CARI_KODU, c.CARI_ISIM,
       m.TOPLAM_MIK, m.GENELTOPLAM
FROM TBLSIPAMAS m
LEFT JOIN TBLCASABIT c ON c.CARI_KOD = m.CARI_KODU
WHERE m.FTIRSIP = '6'
ORDER BY m.TARIH DESC;

Kalem detayı gerekiyorsa TBLSIPATRA'yı FISNO = FATIRS_NO ile bağlayın.

Bu sorguları uyarlarken dikkat

  • Belge tipi (FTIRSIP/STHAR_FTIRSIP) filtresi şarttır; yoksa satışa sipariş ve irsaliye karışır.
  • KDV dahil/hariç: STHAR_NF net fiyattır; KDV'li tutar isterseniz STHAR_KDV oranını hesaba katın. Başlıkta KDV_DAHILMI alanı E/H değeri taşır.
  • Tarih aralığı: dönemsel rapor istiyorsanız STHAR_TARIH >= '20260101' AND STHAR_TARIH < '20270101' gibi bir koşul ekleyin.

Sık sorulanlar

Bu sorgular hangi Netsis sürümünde çalışır? Temel tablo yapısı (TBLSTSABIT, TBLSTHAR, TBLCAHAR, TBLFATUIRS) Netsis 3 ailesinde ortaktır. Yine de özel alan ve parametreler kuruluma göre değişebilir.

Sorguyu kendi ihtiyacıma göre nasıl değiştiririm? Kolon eklemek, filtre değiştirmek, gruplamayı bozmamak gerekir; SQL bilginiz sınırlıysa en pratik yol sorunuzu doğal dille yazıp SQL'i üretmek.


10 sorgu iyi bir başlangıçtır; ama gerçek hayatta herkesin ihtiyacı farklıdır: "geçen ay İzmir'deki bayilere satılan ürünler", "vadesi bu hafta dolan çekler"... Erp Asistanı'na ücretsiz üye olun, istediğiniz sorguyu Türkçe yazın; Netsis şemanıza uygun SQL'i saniyeler içinde alın.

Ücretsiz üye olun, istediğiniz sorguyu doğal dille 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.