SAP, dünya genelinde en yaygın kullanılan ERP sistemlerinden biridir ve büyük ölçekli işletmelerin
veri yönetimini merkezi bir yapı altında toplar. SAP sistemlerinde veri analizi genellikle ABAP
üzerinden yapılırken, bazı durumlarda SQL sorguları da güçlü bir alternatif olarak kullanılabilir.
SAP tabloları oldukça geniş ve karmaşık bir yapıya sahiptir. VBAK, VBAP, BKPF, BSEG gibi tablolar
finans, satış ve muhasebe verilerini içerir. Bu tablolar üzerinden yazılan SQL sorguları ile
maliyet merkezleri, açık siparişler, satış analizleri ve finansal hareketler detaylı şekilde incelenebilir.
SAP SQL sorguları özellikle raporlama süreçlerinde hız kazandırır. Standart SAP raporlarının
yetersiz kaldığı durumlarda, SQL ile doğrudan veri çekmek büyük avantaj sağlar.
Ancak SAP sistemlerinde veri güvenliği ve yetkilendirme konularına dikkat edilmelidir.
ABAP geliştirme bilgisi olan kullanıcılar için SQL bilgisi ek bir avantajdır.
Çünkü SQL ile oluşturulan veri setleri ABAP programlarında da kullanılabilir.
Bu da daha esnek ve güçlü raporların oluşturulmasına olanak tanır.
Bu sayfada yer alan SAP SQL sorguları, temel raporlama ihtiyaçlarını karşılamak üzere hazırlanmıştır.
Kendi SAP sisteminize göre tablo ve alan isimlerini kontrol ederek kullanabilirsiniz.
Müşteri Bazlı Satış Özeti
SAP
SELECT
T0.CardCode AS MUSTERI_KODU,
T0.CardName AS MUSTERI,
COUNT(T0.DocEntry) AS BELGE_SAYISI,
SUM(T0.DocTotal) AS TOPLAM_SATIS
FROM OINV T0
WHERE T0.CANCELED = 'N'
GROUP BY T0.CardCode, T0.CardName
ORDER BY TOPLAM_SATIS DESC
Depo Bazlı Stok Durumu
SAP
SELECT
T0.ItemCode AS STOK_KODU,
T0.ItemName AS STOK_ADI,
T1.WhsCode AS DEPO,
T1.OnHand AS MEVCUT_STOK
FROM OITM T0
JOIN OITW T1 ON T0.ItemCode = T1.ItemCode
WHERE T1.OnHand > 0
ORDER BY T1.OnHand DESC
Vadesi Geçmiş Cari Alacaklar
SAP
SELECT
T0.DocNum AS FATURA_NO,
T0.CardCode AS MUSTERI_KODU,
T0.CardName AS MUSTERI,
T0.DocDate AS FATURA_TARIHI,
T0.DocDueDate AS VADE_TARIHI,
T0.DocTotal AS FATURA_TUTARI,
DATEDIFF(day, T0.DocDueDate, GETDATE()) AS GECIKME_GUN
FROM OINV T0
WHERE T0.DocStatus = 'O'
AND T0.CANCELED = 'N'
AND T0.DocDueDate < GETDATE()
ORDER BY GECIKME_GUN DESC
Açık Satın Alma Siparişleri
SAP
SELECT
T0.DocNum AS SIPARIS_NO,
T0.CardName AS TEDARIKCI,
T0.DocDate AS SIPARIS_TARIHI,
T0.DocDueDate AS BEKLENEN_TESLIMAT,
T0.DocTotal AS TOPLAM_TUTAR
FROM OPOR T0
WHERE T0.DocStatus = 'O'
AND T0.CANCELED = 'N'
ORDER BY T0.DocDueDate ASC
SELECT TOP 20
T1.ItemCode AS STOK_KODU,
T1.Dscription AS STOK_ADI,
SUM(T1.Quantity) AS TOPLAM_MIKTAR,
SUM(T1.LineTotal) AS TOPLAM_TUTAR
FROM OINV T0
JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.CANCELED = 'N'
GROUP BY T1.ItemCode, T1.Dscription
ORDER BY TOPLAM_TUTAR DESC
SAP B1 Fatura Satırı Detayı
SAP
SELECT TOP 100
inv.DocNum AS FATURA_NO,
inv.DocDate AS FATURA_TARIHI,
inv.CardCode AS MUSTERI_KODU,
inv.CardName AS MUSTERI,
line.ItemCode AS STOK_KODU,
line.Dscription AS STOK_ADI,
line.Quantity AS MIKTAR,
line.LineTotal AS SATIR_TUTAR
FROM OINV inv
JOIN INV1 line ON line.DocEntry = inv.DocEntry
WHERE inv.CANCELED = 'N'
AND inv.DocDate >= DATEADD(day, -30, GETDATE())
ORDER BY inv.DocDate DESC, inv.DocNum DESC
SAP B1 Kritik Stok Listesi
SAP
SELECT
item.ItemCode AS STOK_KODU,
item.ItemName AS STOK_ADI,
whs.WhsCode AS DEPO,
whs.OnHand AS MEVCUT_STOK,
item.MinLevel AS MIN_STOK
FROM OITM item
JOIN OITW whs ON whs.ItemCode = item.ItemCode
WHERE item.MinLevel > 0
AND whs.OnHand < item.MinLevel
ORDER BY (item.MinLevel - whs.OnHand) DESC
SAP SD Açık Sipariş Takibi
SAP
SELECT
vbak.VBELN AS SIPARIS_NO,
vbak.AUART AS SIPARIS_TURU,
vbak.KUNNR AS MUSTERI,
vbak.ERDAT AS OLUSTURMA_TARIHI,
vbak.GBSTK AS GENEL_DURUM
FROM VBAK vbak
WHERE vbak.GBSTK <> 'C'
ORDER BY vbak.ERDAT DESC