ERP El Defteri

Derin ERP SQL Sorguları Rehberi

ERP sistemlerinde güvenilir, performanslı ve iş kuralına uygun SQL sorguları yazmak için öğretici el kitabı.

// temel prensip

Derin ERP SQL Sorgusu Nedir?

Derin ERP SQL sorgusu yalnızca birkaç tabloyu birleştiren rapor değildir. Belge akışını, iptal kayıtlarını, tarih mantığını, stok hareket yönünü, cari hesap ilişkisini, kalite sonucunu ve maliyet etkisini birlikte ele alan sorgudur. ERP verisi operasyonel bir veridir; bu nedenle rapor yazarken sadece SELECT sonucuna değil, iş kuralının gerçekten doğru temsil edilip edilmediğine bakmak gerekir.

Bir ERP uzmanının SQL yazarken ilk hedefi hızlı sonuç almak değil, güvenilir sonuç almaktır. Hatalı bir JOIN, eksik tarih filtresi veya iptal kayıtlarını dışarıda bırakmayan bir sorgu yönetim raporunu yanlış yönlendirebilir. Bu yüzden sorgu her zaman iş süreci, veri modeli ve doğrulama yöntemiyle birlikte düşünülmelidir.

// sorgu tasarım adımları

ERP SQL Yazmadan Önce Sorulacak Sorular

Raporun Kararı Nedir?
Bu rapor stok azaltma, tahsilat takibi, üretim performansı, kalite riski veya satın alma kararı için mi kullanılacak?
Belge Durumu Net mi?
İptal, taslak, kapalı, iade, revize edilmiş ve muhasebeleşmiş kayıtlar ayrı ele alınmalı.
Tarih Alanı Doğru mu?
Belge tarihi, fiili hareket tarihi, vade tarihi, kapanış tarihi ve kayıt tarihi farklı kararlar üretir.
Tekilleştirme Gerekir mi?
Başlık-satır, satır-dağıtım veya hareket-detay ilişkilerinde mükerrer satır üretme riski kontrol edilmeli.
// örnek sorgu

Örnek: Stok Yaşlandırma Mantığı

Stok yaşlandırma raporu sadece eldeki miktarı göstermez. Ürünün en son ne zaman hareket gördüğünü, hangi depoda beklediğini ve satış/üretim tüketim hızının düşüp düşmediğini anlamaya çalışır. Bu rapor satın alma, depo ve finans ekipleri için aynı anda değer üretir.

Genel Stok Yaşlandırma Taslağı
Genel
SELECT STOK_KODU, STOK_ADI, DEPO_KODU, SUM(GIRIS_MIKTAR - CIKIS_MIKTAR) AS MEVCUT_STOK, MAX(HAREKET_TARIHI) AS SON_HAREKET_TARIHI, DATEDIFF(day, MAX(HAREKET_TARIHI), GETDATE()) AS HAREKETSIZ_GUN FROM STOK_HAREKETLERI WHERE HAREKET_TARIHI >= DATEADD(year, -2, GETDATE()) GROUP BY STOK_KODU, STOK_ADI, DEPO_KODU HAVING SUM(GIRIS_MIKTAR - CIKIS_MIKTAR) > 0 ORDER BY HAREKETSIZ_GUN DESC
Tablo adları ERP sistemine göre uyarlanmalıdır; mantık eldeki stok ve son hareket tarihini birlikte okur.
// performans

Performans ve Güvenilirlik Kontrolü

ERP veritabanlarında sorgu performansı iş sürekliliğini etkileyebilir. Büyük hareket tablolarında tarih filtresi olmadan çalışan raporlar canlı sistemi yavaşlatabilir. SELECT * kullanımından kaçınmak, gerekli kolonları seçmek, filtreleri mümkün olduğunca erken uygulamak ve rapor amaçlı sorguları mümkünse replika veya raporlama veritabanında çalıştırmak gerekir.

Tarih Filtresi
Hareket tablolarında varsayılan tarih aralığı olmadan sorgu çalıştırma.
Kolon Seçimi
SELECT * yerine raporda gerçekten kullanılan kolonları seç.
Doğrulama
Rapor sonucunu ERP ekranındaki bilinen belge, cari veya stok kaydıyla karşılaştır.
// ilgili sayfalar

ERP El Defteri İçinde Devam Et

ERP Ekran Geliştirme
Form, liste, yetki, doğrulama ve kullanıcı deneyimi yönergeleri.
Yönergeler
ERP AI Yardımcısı
Rapor ve KPI ihtiyacını yapılandırmak için yardımcı araç.
Aracı Aç
// deneyimli ERP sorgu kılavuzu

ERP Sorgularında 12 Kural

1. İş kuralını yaz
Sorgudan önce raporun neyi karar verdireceğini tek cümleyle yaz. Karar net değilse SQL doğru olsa bile rapor zayıf kalır.
2. Belge yaşam döngüsünü anla
Sipariş, irsaliye, fatura, iade, iptal, kapama ve muhasebeleşme adımları ayrı durumlar üretir.
3. Hareket yönünü ayır
Stok ve finans hareketlerinde giriş/çıkış yönü, borç/alacak mantığı ve iade etkisi açık hesaplanmalıdır.
4. Tarihi doğru seç
Kayıt tarihi, belge tarihi, fiili hareket tarihi ve vade tarihi farklı rapor sonuçları verir.
5. Tekilleştirmeyi kontrol et
Başlık-satır-detay ilişkilerinde bir satır birden fazla dağıtım kaydına bağlanıyorsa toplamlar şişebilir.
6. İptal kayıtlarını dışla
ERP ekranında görünmeyen iptal veya taslak kayıtlar SQL raporunda kalırsa yönetim raporu bozulur.
7. NULL davranışını yönet
Boş değerler toplam, oran ve tarih farkı hesaplarında sessiz hata üretir.
8. Oranları koru
Bölme işlemlerinde NULLIF kullan; sıfıra bölme hatasını rapor çalışırken değil tasarımda çöz.
9. ERP ekranıyla doğrula
Her raporu en az üç bilinen belge, stok veya cari kart üzerinden ERP ekranıyla karşılaştır.
10. Performans sınırı koy
Canlı sistemde büyük hareket tablolarını tarih filtresi olmadan tarama.
11. Kullanıcı diline çevir
SQL kolonu teknik olabilir; rapor başlığı kullanıcının anlayacağı süreç dilinde olmalıdır.
12. Rapor notu bırak
Her kritik raporda tarih filtresi, iptal mantığı, veri kaynağı ve hesap formülü kısa not olarak bulunmalı.
// rapor tipleri

Derin Sorgu Aileleri

ERP tarafında raporlar genelde birkaç ana aileye ayrılır. Stok raporları miktar ve hareket yönünü; finans raporları vade, borç, alacak ve kur etkisini; üretim raporları iş emri, operasyon, fire ve zaman verisini; kalite raporları uygunsuzluk, kök neden, tedarikçi ve aksiyon kapanışını izler. Bir ERP uzmanı bu ailelerin ortak veri mantığını öğrendiğinde farklı ERP sistemleri arasında daha rahat geçiş yapar.

Rapor Ailesi Kontrol Matrisi
El Defteri
Stok : depo, lot, giriş/çıkış, son hareket, rezervasyon Finans : cari, vade, ödeme, kur, kapama, risk limiti Satış : teklif, sipariş, irsaliye, fatura, iade, iskonto Üretim : iş emri, operasyon, duruş, fire, sağlam üretim Kalite : kontrol sonucu, hata kodu, CAPA, tedarikçi, maliyet Servis : çağrı, müdahale, parça, garanti, kapanış süresi
Bu matris yeni rapor talebini sınıflandırmak için başlangıç noktasıdır.