-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunction.sql
28 lines (20 loc) · 845 Bytes
/
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
/*Her bir kategoride yapılan satışların kargo başına ortalama geliri
(Her kargo içerisinde birden çok aynı kategori tipine sahip ürün
bulunabileceğinden kargoId'ler distinct olarak verilmiştir.)*/
IF OBJECT_ID('dbo.KATEGORIYE_GORE_ORTALAMA_GONDERI_BASINA_GELIR') IS NOT NULL
BEGIN
DROP FUNCTION KATEGORIYE_GORE_ORTALAMA_GONDERI_BASINA_GELIR
END
GO
CREATE FUNCTION KATEGORIYE_GORE_ORTALAMA_GONDERI_BASINA_GELIR(@KATEGORI_ID INT)
RETURNS INT
AS
BEGIN
DECLARE @ORTALAMA_URUN_BASINA_GELIR DECIMAL(8,2)
SELECT @ORTALAMA_URUN_BASINA_GELIR=SUM(TU.Fiyat)/COUNT(DISTINCT TU.KargoId) FROM tblUrun TU
WHERE TU.UrunKategoriId = @KATEGORI_ID
RETURN @ORTALAMA_URUN_BASINA_GELIR
END
GO
--fonksiyon test
SELECT *,dbo.KATEGORIYE_GORE_ORTALAMA_GONDERI_BASINA_GELIR(TUK.ID) GONDERI_BASI_ORTALAMA_GELIR FROM tblUrunKategorisi TUK