SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= ALTER FUNCTION [dbo].[getProcentWykonaniaPlanu] ( -- Add the parameters for the function here @idAgencji int, @rok int, @miesiac int ) RETURNS decimal(9,4) AS BEGIN DECLARE @prowizja DECIMAL(9,4) SELECT @prowizja = ROUND(AVG(procent), 4) --as Procent FROM ( SELECT PL.Id_agencji, PL.AGENCJA, PL.ROK, PL.MS, PL.PLANOWANY_BUDZET_AGENCJI, PL.WYKONANY_BUDZET_AGENCJI, dbo.BUDZET_BIUR.BUDZET AS PLAN_BIURA, CONVERT (datetime, CONVERT (nvarchar, PL.ROK) + '-' + CONVERT (nvarchar, PL.MS) + '-1') AS data, 1.0 * PL.WYKONANY_BUDZET_AGENCJI / dbo.BUDZET_BIUR.BUDZET AS procent, PL.Unia FROM (SELECT dbo.Agencje.Unia , dbo.AGENCJE.Symbol AS AGENCJA , dbo.[PLAN].ROK , dbo.[PLAN].MS , SUM(dbo.[PLAN].BUDZET) AS PLANOWANY_BUDZET_AGENCJI , SUM(dbo.[PLAN].W_BUDZET) AS WYKONANY_BUDZET_AGENCJI , dbo.AGENCJE.Id_agencji FROM dbo.AGENCI INNER JOIN dbo.AGENCJE ON dbo.AGENCI.ID_AGENCJI = dbo.AGENCJE.Id_agencji INNER JOIN dbo.[PLAN] ON dbo.AGENCI.Symbol = dbo.[PLAN].SYMBOL WHERE (Abs(dbo.AGENCJE.aktywna) = 1) GROUP BY dbo.agencje.unia , dbo.AGENCJE.Symbol , dbo.[PLAN].ROK , dbo.[PLAN].MS , dbo.AGENCJE.Id_agencji) PL LEFT OUTER JOIN dbo.BUDZET_BIUR ON PL.Id_agencji = dbo.BUDZET_BIUR.ID_BIURA AND PL.ROK = dbo.BUDZET_BIUR.ROK AND PL.MS = dbo.BUDZET_BIUR.MS WHERE dbo.BUDZET_BIUR.BUDZET <> 0 ) W1 WHERE ROK=@rok AND MS=@miesiac AND Id_Agencji = @idAgencji GROUP BY UNIA, Id_Agencji, AGENCJA,ROK,CONVERT(INTEGER,(1.0+datepart(quarter,data)))/2, datepart(quarter,data), MS RETURN @prowizja END GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO