Logo'da Ürün ve Müşteri Bazında Kârlılık SQL Sorgusu

قاعدة المعرفة › Logo Veritabanı & SQL

Logo Veritabanı & SQL7 دقيقة قراءة4 نوفمبر 20260 görüntülenme
Logo'da Ürün ve Müşteri Bazında Kârlılık SQL Sorgusu

Logo Tiger ve Go 3'te satış tutarı ile çıkış maliyetini (OUTCOST) karşılaştırarak ürün, müşteri ve ay bazında brüt kâr ve kâr marjı hesaplayan SQL sorguları.

"Hangi ürün gerçekten kazandırıyor?" sorusunun cevabı Logo'da satış tutarı ile o satışın maliyetini karşılaştırmaktır. Logo, her satış satırına o anki çıkış maliyetini yazar; bu sayede ürün, müşteri veya ay bazında brüt kârı tek bir SQL sorgusuyla hesaplamak mümkündür.

✅Bu rehberdeki maliyet alanının anlamı (OUTCOST = birim maliyet), iki farklı gerçek Logo veritabanında binlerce satış satırı ortalama alış fiyatlarıyla karşılaştırılarak doğrulanmıştır.
ℹ️Örneklerde firma 001, dönem 01 kullanılmıştır. Kendi firma ve dönem numaranızla değiştirin.

Kârlılık Hesabında Kullanılan Alanlar

Satış satırları LG_001_01_STLINE tablosundadır. Kârlılık için gereken alanlar:

AlanAçıklama
AMOUNTSatılan miktar
LINENETİndirimler düşülmüş net satış tutarı (KDV hariç)
OUTCOSTBirim çıkış maliyeti — satış anındaki maliyet
TRCODE7 perakende satış, 8 toptan satış; 2 ve 3 satış iadeleri
LINETYPE0 = malzeme satırı

Hesap şu şekildedir:

  • Satırın maliyeti = AMOUNT × OUTCOST
  • Brüt kâr = LINENET − AMOUNT × OUTCOST
  • Kâr marjı (%) = Brüt kâr ÷ LINENET × 100
⚠️OUTCOST bir birim maliyettir, satır toplamı değildir. Toplam maliyeti bulmak için mutlaka miktarla (AMOUNT) çarpın.

1. Ürün Bazında Kârlılık

SELECT I.CODE AS MalzemeKodu, I.NAME AS MalzemeAdi,
       SUM(S.AMOUNT) AS Miktar,
       SUM(S.LINENET) AS NetSatis,
       SUM(S.AMOUNT * S.OUTCOST) AS Maliyet,
       SUM(S.LINENET - S.AMOUNT * S.OUTCOST) AS BrutKar,
       CASE WHEN SUM(S.LINENET) = 0 THEN 0
            ELSE SUM(S.LINENET - S.AMOUNT * S.OUTCOST) / SUM(S.LINENET) * 100 END AS KarMarjiYuzde
FROM LG_001_01_STLINE S
JOIN LG_001_ITEMS I ON I.LOGICALREF = S.STOCKREF
WHERE S.TRCODE IN (7, 8) AND S.LINETYPE = 0 AND S.CANCELLED = 0
GROUP BY I.CODE, I.NAME
ORDER BY BrutKar DESC

ORDER BY BrutKar DESC en çok kazandıran ürünleri üste getirir. Zarar eden ürünleri görmek için ORDER BY BrutKar ASC kullanın.

2. Müşteri Bazında Kârlılık

Aynı hesap, cariye göre gruplanınca hangi müşterinin daha kârlı olduğunu gösterir. Yüksek ciro yapan ama düşük marjla çalışan müşterileri bu raporla fark edebilirsiniz.

SELECT C.CODE AS CariKodu, C.DEFINITION_ AS Unvan,
       SUM(S.LINENET) AS NetSatis,
       SUM(S.LINENET - S.AMOUNT * S.OUTCOST) AS BrutKar,
       CASE WHEN SUM(S.LINENET) = 0 THEN 0
            ELSE SUM(S.LINENET - S.AMOUNT * S.OUTCOST) / SUM(S.LINENET) * 100 END AS KarMarjiYuzde
FROM LG_001_01_STLINE S
JOIN LG_001_CLCARD C ON C.LOGICALREF = S.CLIENTREF
WHERE S.TRCODE IN (7, 8) AND S.LINETYPE = 0 AND S.CANCELLED = 0
GROUP BY C.CODE, C.DEFINITION_
ORDER BY BrutKar DESC

3. Aylık Kârlılık Trendi

SELECT YEAR(S.DATE_) AS Yil, MONTH(S.DATE_) AS Ay,
       SUM(S.LINENET) AS NetSatis,
       SUM(S.AMOUNT * S.OUTCOST) AS Maliyet,
       SUM(S.LINENET - S.AMOUNT * S.OUTCOST) AS BrutKar
FROM LG_001_01_STLINE S
WHERE S.TRCODE IN (7, 8) AND S.LINETYPE = 0 AND S.CANCELLED = 0
GROUP BY YEAR(S.DATE_), MONTH(S.DATE_)
ORDER BY Yil, Ay

4. İadeleri de Hesaba Katmak

Satış iadeleri (2 perakende, 3 toptan satış iadesi) hem ciroyu hem maliyeti geri alır. İadeleri düşerek net kârlılığı görmek için iade satırlarını eksi yönde toplayın:

SELECT I.CODE AS MalzemeKodu, I.NAME AS MalzemeAdi,
       SUM(CASE WHEN S.TRCODE IN (7, 8) THEN S.LINENET ELSE -S.LINENET END) AS NetSatis,
       SUM(CASE WHEN S.TRCODE IN (7, 8) THEN 1 ELSE -1 END
           * (S.LINENET - S.AMOUNT * S.OUTCOST)) AS BrutKar
FROM LG_001_01_STLINE S
JOIN LG_001_ITEMS I ON I.LOGICALREF = S.STOCKREF
WHERE S.TRCODE IN (2, 3, 7, 8) AND S.LINETYPE = 0 AND S.CANCELLED = 0
GROUP BY I.CODE, I.NAME
ORDER BY BrutKar DESC

Dikkat Edilmesi Gerekenler

  • Maliyet sıfır görünen satırlar: Bazı satırlarda OUTCOST 0 olabilir (ör. maliyeti girilmemiş ürünler veya maliyet hesaplanmadan önce kesilen faturalar). Bu satırlarda kâr, satış tutarının tamamı gibi görünür. Kontrol için WHERE S.OUTCOST = 0 ile listeleyin.
  • Geriye tarihli girişler: Geçmiş tarihli alış veya iade girildiğinde sonraki satışların maliyeti değişebilir. Logo'da maliyet değerlerinin güncel olduğundan emin olun.
  • Brüt kâr, net kâr değildir: Bu hesap yalnızca satılan malın maliyetini düşer. Genel giderler, personel, kira gibi kalemler dahil değildir.
  • Farklı birimler: Aynı ürün farklı birimlerle (adet, koli) satılıyorsa miktarları ana birime çevirmeniz gerekir.

Sık Sorulan Sorular

OUTCOST ile malzeme kartındaki alış fiyatı aynı şey mi?

Hayır. Kartteki fiyat bir liste fiyatıdır; OUTCOST ise satış anında Logo'nun hesapladığı gerçek çıkış maliyetidir ve maliyet yöntemine (ör. ağırlıklı ortalama) göre oluşur. Kârlılık için OUTCOST kullanılmalıdır.

Hizmet satışlarının kârlılığı nasıl hesaplanır?

Hizmet satırları (LINETYPE = 4) stoktan çıkış yapmadığı için çıkış maliyeti taşımaz. Hizmet kârlılığı için ilgili masraf kayıtlarının ayrıca değerlendirilmesi gerekir.

Sonuçları Excel'de grafikle görmek istiyorum

Sorgularınızı Excel'e canlı bağlayarak her açılışta güncel kârlılık raporu alabilirsiniz.


Logo verilerinizle kârlılık analizi, yönetim paneli veya özel rapor ihtiyacınız varsa Logo iş ortağı olarak ekibimiz yardımcı olabilir.

قاعدة المعرفة
/logo-urun-karlilik-sql