Mikro Sorgu Örnekleri SQL

Ön muhasebe F10 da carinin muhasebe bakiyesini görmek için ;

MUSTERI_CHOOSE_2A (F10’da kod sıralı görünüm) gönümüne alternatif tanıtacağımız bir sorgu örneği

SELECT TOP 100 PERCENT
muk_RECno AS [KAYIT NO],
muk_kod AS [MÜŞTERİ KODU],
muk_unvan1 AS [MÜŞTERİ ÜNVANI],
muk_unvan2 AS [MÜŞTERİ ÜNVANI 2],
dbo.fn_CariHesapAnaDovizBakiye(0, muk_kod, '', 0) AS BAKİYE,
muk_muh_kod AS [MUH KODU],
dbo.fn_muhbakiye(muk_muh_kod) AS [MUH BAKİYE]
FROM dbo.MUSTERI WITH (NOLOCK)
ORDER BY muk_kod


MUSTERI_CHOOSE_3A (F10’da İsim sıralı görünüm) gönümüne alternatif tanıtacağımız bir sorgu örneği

SELECT TOP 100 PERCENT
muk_RECno AS [KAYIT NO],
muk_unvan1 AS [MÜŞTERİ ÜNVANI],
muk_unvan2 AS [MÜŞTERİ ÜNVANI 2],

muk_kod AS [MÜŞTERİ KODU],
dbo.fn_CariHesapAnaDovizBakiye(0, muk_kod, '', 0) AS BAKİYE,
muk_muh_kod AS [MUH KODU],
dbo.fn_muhbakiye(muk_muh_kod) AS [MUH BAKİYE]
FROM dbo.MUSTERI WITH (NOLOCK)
ORDER BY muk_unvan1


Satıcılar ve diğer cariler içinde bu örneğe benzer görünümler yazabiliriz.

———————

Eklenen satırlardan [MUH BAKİYE] satırının  muhasebe bakiyesini nasıl bulduğunu anlamak için dbo.fn_muhbakiye fonksiyonuna bi göz atalım ;


CREATE FUNCTION dbo.fn_muhbakiye (@MuhKod as varchar(25))
RETURNS float AS
BEGIN
  Declare @Bakiye as float
  SELECT @Bakiye = Sum(fis_meblag0) from dbo.MUHFIS WITH (NOLOCK)
 where (fis_hesap_kod = @MuhKod)
  Return (@Bakiye)
END


Dikkat ederseniz fonksiyon @MuhKod için bizden bi değer istiyor. Bizde muk_muh_kodu değerini veriyoruz.Fonksiyon da MUHFIS tablosu içersindeki  fis_hesap_kodu = @MuhKod (yani muhasebe kodu olan muk_muh_kod )
olan fislerin meblağını topluyor. MUHFIS tablosunda borc meblag lar (+) alacak meblağlar (-) değere sahip olduğundan bakiye = borc toplamı-alacak toplamı şeklinde değer alıyor.

” dbo.fn_muhbakiye ”  fonksiyonunu cari muhasebe kodunun veya cari kodunun yer aldığı bütün raporlarda kullanabiliriz. Örn, Müşteri Durum Raporunda Sorgu ekle bölümüne

Select dbo.fn_muhbakiye('#9#')       yazalım…

(müşteri durum raporunda Muhasebe Kodu Kolonu 9 dur. Diğer Raporlarda değişebilir)

Raporda Müşteri Kodu kolonu var ama muhasebe kodu kolonu yoksa
(Müşteri Sıralı ve Sorm merkz Detaylı Bakiye Durm.Rap  gibi…)
o zaman şu fonksiyonu MyeDBA dan yada Ent.Managerdan kaydedelim.

——

CREATE FUNCTION dbo.fn_muhkodunubul (@Caricinsi as varchar(5),@carikod as varchar(25))
RETURNS VARCHAR(50) AS
BEGIN
  Declare @muhkod as varchar(25)

if @Caricinsi = 0  SELECT @muhkod =  muk_muh_kod from dbo.MUSTERI WITH (NOLOCK) where (muk_kod = @carikod)
if @Caricinsi = 1  SELECT @muhkod =  sat_muh_kod from dbo.SATICI WITH (NOLOCK) where (sat_kod = @carikod)

— Diğer cari, banka vs.. için buraya ilave yapabiliriz.

Return (@muhkod)

END

—-

(Fonksiyon kendisini tükçe olarak şöyle tanıtır ;
Bana 2 değer gönderin. (1- @Caricinsi , 2- @Carikod )
Eğer @caricinsi ‘ne 0 değeri gönderirseniz @Carikod ‘una verdiğiniz değere eşit olan  muhasebe kodunu Müşteri tablosundan bulurum.
Eğer @caricinsi ‘ne 1 değeri gönderirseniz @Carikod ‘una verdiğiniz değere eşit olan  muhasebe kodunu Satıcı tablosundan bulurum.
vs… )
——————-
Sorgu ekle kolonuna şu satırı yazalım ;

Select dbo.fn_muhbakiye(dbo.fn_muhkodunubul(0,'#1#'))
(Bu raporda Müşteri Kodu Kolonu 1 dir. Diğer Raporlarda değişebilir)

Not : Sorgu kolonlarının Veri Tipi  Real olarak ayarlanmalıdır.

İki depoda ki miktar ve toplam miktarı gösteren sorgu

SELECT TOP 100 PERCENT sto_RECno AS [KAYIT NO], sto_kod AS KODU, sto_isim AS ADI, sto_fiat1_tutar AS [FİYAT],
                         dbo.fn_EldekiMiktar(sto_kod) AS [TOPLAM MİK.],
dbo.fn_DepodakiMiktar(sto_kod,1,0) AS [MERKEZ DEPO],
dbo.fn_DepodakiMiktar(sto_kod,2,0) AS [BÇEK.DEPO]
FROM dbo.STOK WITH (NOLOCK)
ORDER BY sto_kod

Buda banka yönetim ekranına bakiyeyi eklediğimiz sorgu(BANKA_YONETIM):

SELECT  TOP 100 PERCENT  ban_RECno AS [KAYIT NO],
                           ban_kod AS [KODU],
                           ban_ismi AS [İSMİ],
                           ban_sube AS [ŞUBE],
                           ban_hesapno AS [HESAP NO],
                           ban_hesap_tip AS [HESAP TİPİ],
                           ban_mevduat_tip AS [MEVDUAT TİPİ],
                           ban_muh_kod AS [MUHASEBE KODU],
                           dbo.fn_DovizIsmi(ban_doviz_cinsi) AS [DÖVİZ CİNSİ],
                           ban_TCMB_Kodu AS [TCMB BANKA KODU],
                           ban_TCMB_Sube_Kodu AS [TCMB ŞUBE KODU],
                           ban_TCMB_Il_kodu AS [TCMB İL KODU],
                           ban_musteri_no AS [MÜŞTERİ NUMARAMIZ],
                           ban_Ayni_banka_tahsil_suresi AS [AYNI BANKA ÇEK TAHSİL SÜRESİ],
                           ban_baska_banka_tahsil_suresi AS [BAŞKA BANKA ÇEK TAHSİL SÜRESİ],
                           dbo.fn_CariHesapAnaDovizBakiye(2,ban_kod,'',1) as [BAKİYE]
FROM dbo.BANKA WITH (NOLOCK)
ORDER BY ban_kod

Yazı gezinmesi

Mobil sürümden çık