-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfunction.sql
34 lines (29 loc) · 1.06 KB
/
function.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
--Böyle bir fonksiyon var ise önce siliyoruz
IF OBJECT_ID ( 'fn_ToplamOynananOyun') IS NOT NULL
BEGIN
-- Fonksiyon varsa sil
DROP FUNCTION fn_ToplamOynananOyun;
END
GO
--Parametre olarak verilen uyenin ve oyunun kaç kez oynandığını döndüren fonksiyon(açıklama: toplam oynanan oyun sayısını oyun_seanlar tablosundaki olusturan_uye_ıd ve oyunu kazanan_ıd ile tespit ettik)
CREATE FUNCTION fn_ToplamOynananOyun(@UYE_ID INT, @OYUN_ID INT)
RETURNS INT
AS
BEGIN
DECLARE @ToplamOyunSayisi INT;
-- Oyuncunun belirli bir oyunu kaç kez oynadığını hesaplayan sorgu
SELECT
@ToplamOyunSayisi = COUNT(*)
FROM
tblOyun_seanslar OS
INNER JOIN
tbloyun O ON O.OYUN_ID = OS.oyun_ID
WHERE
OS.oyun_ID = @OYUN_ID
AND (OS.OLUSTURAN_UYE_ID = @UYE_ID OR OS.KAZANAN_UYE_ID = @UYE_ID);
-- Hesaplanan toplam oyun sayısını döndürüyoruz
RETURN @ToplamOyunSayisi;
END
GO
-- 1 ID numaralı uye 13 ID numaralı oyunu kaç kez oynamıştır.
SELECT dbo.fn_ToplamOynananOyun(1,13) AS toplamoyunsayısı;