- Katılım
- 3 Şubat 2014
- Mesajlar
- 1,744
- Tepkime puanı
- 0
- Puanları
- 0
Bu tarz fonksiyonlar, viewlere çok benzer.Bir select içerir ve bu selectin sonucunu döndürür.Viewlerden farkı ve en önemli avantajı; dışarıdan parametre alır.
Buna bir örnek yapalım,bir E-ticaret sitesi yaptığımızı düşünelim ve bir ürünü alan müşterilerimizin,başka hangi ürünü aldığını listeliyelim.Bu yaptığımız örnekte ayrıca bir fonksiyonun diğer bir fonksiyondan nasıl çağrıldığını da göreceğiz.
Önce bir ürün kodu alıp,bu ürünü alan müşterinin kodunu döndüren fonksiyonu yazalım;
Kod:
CREATEFUNCTİONFN_AlanMusteriKodu(@urunKod INT)RETURNS TABLE
AS
RETURN SELECT kullaniciKod
FROM tblSiparisDetay SD INNER JOIN tblSiparis S
ON S.faturaKod=SD.FaturaKod
WHEREurunKod=@urunKod
Şimdi de ,yukardaki fonksiyonu kullanarak,bir ürünü alan müşterilerin , başka hangi ürünleri aldığını listeleyen fonksiyonu yazalım.
Kod:
CREATEFUNCTİONFN_BunuAlanbunlariAldi(@urunKod INT)RETURNS TABLE
AS
RETURN SELECT U.urunKod,U.urunAd
FROM tblUrun U INNER JOIN tblSiparisDetay SD
ON SD.urunKod=U.urunKod
INNER JOIN tblSiparis S
ON S.faturaKod=SD.FaturaKod
INNER JOIN FN_AlanMusteriKodu(@urunKod) FNA
ONFNA.KullaniciKod=S.kullaniciKod
Buna bir örnek yapalım,bir E-ticaret sitesi yaptığımızı düşünelim ve bir ürünü alan müşterilerimizin,başka hangi ürünü aldığını listeliyelim.Bu yaptığımız örnekte ayrıca bir fonksiyonun diğer bir fonksiyondan nasıl çağrıldığını da göreceğiz.
Önce bir ürün kodu alıp,bu ürünü alan müşterinin kodunu döndüren fonksiyonu yazalım;
Kod:
CREATEFUNCTİONFN_AlanMusteriKodu(@urunKod INT)RETURNS TABLE
AS
RETURN SELECT kullaniciKod
FROM tblSiparisDetay SD INNER JOIN tblSiparis S
ON S.faturaKod=SD.FaturaKod
WHEREurunKod=@urunKod
Şimdi de ,yukardaki fonksiyonu kullanarak,bir ürünü alan müşterilerin , başka hangi ürünleri aldığını listeleyen fonksiyonu yazalım.
Kod:
CREATEFUNCTİONFN_BunuAlanbunlariAldi(@urunKod INT)RETURNS TABLE
AS
RETURN SELECT U.urunKod,U.urunAd
FROM tblUrun U INNER JOIN tblSiparisDetay SD
ON SD.urunKod=U.urunKod
INNER JOIN tblSiparis S
ON S.faturaKod=SD.FaturaKod
INNER JOIN FN_AlanMusteriKodu(@urunKod) FNA
ONFNA.KullaniciKod=S.kullaniciKod