SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP PROCEDURE IF EXISTS [dbo].[sp_GetKozossegiSzolgalatokReszletek] GO -- ============================================= -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_GetKozossegiSzolgalatokReszletek] @pIntezmenyId INT ,@pTanevId INT ,@pTanuloId INT = NULL ,@pTanarId INT = NULL ,@pToroltElemek CHAR = 'F' ,@pIntervallumKezdete DATETIME = NULL ,@pIntervallumVege DATETIME = NULL ,@pTeljesitesHelye NVARCHAR = NULL ,@pOraszam INT = NULL ,@pKozossegiSzolgalatTipusa INT = NULL AS BEGIN SET NOCOUNT ON; DECLARE @sql nvarchar(max) ,@selectSql nvarchar(max) ,@whereSql nvarchar(max) ,@orderSql nvarchar(max) SET @selectSql = N' SELECT KozossegiSzolgalat.ID ID ,KozossegiSzolgalat.C_INTERVALLUMKEZDETE IntervallumKezdete ,KozossegiSzolgalat.C_INTERVALLUMVEGE IntervallumVege ,KozossegiSzolgalat.C_ROGZITESDATUM RogzitesDatuma ,KozossegiSzolgalat.C_TELJESITESIHELYE TeljesitesiHelye ,KozossegiSzolgalat.C_ORASZAM Oraszam ,KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA KozossegiSzolgalatTipusa ,KozossegiSzolgalat.C_MEGJEGYZES Megjegyzes ,KozossegiSzolgalat.TOROLT Torolt ,KozossegiSzolgalat.C_TANULOID TanuloId ,Tanulo.C_NYOMTATASINEV TanuloNev ,KozossegiSzolgalat.C_UGYIRATSZAM Ugyiratszam ,CASE WHEN KozossegiSzolgalat.C_FELJEGYZOID = @pTanarId AND @pToroltElemek = ''T'' THEN ''T'' ELSE ''F'' END Modosithato FROM T_TANULOKOZOSSEGISZOLGALAT_OSSZES KozossegiSzolgalat INNER JOIN T_FELHASZNALO_OSSZES Tanulo ON KozossegiSzolgalat.C_TANULOID = Tanulo.ID AND Tanulo.TOROLT = ''F'' ' SET @whereSql = N' WHERE KozossegiSzolgalat.C_INTEZMENYID = @pIntezmenyId AND KozossegiSzolgalat.TOROLT = IIF(@pToroltElemek = ''T'', KozossegiSzolgalat.TOROLT, ''F'')' IF @pTanuloId IS NOT NULL BEGIN SET @whereSql = N' AND KozossegiSzolgalat.C_TANULOID = @pTanuloId' END IF @pIntervallumKezdete IS NOT NULL BEGIN SET @whereSql = N' AND KozossegiSzolgalat.C_INTERVALLUMKEZDETE = @pIntervallumKezdete' END IF @pIntervallumVege IS NOT NULL BEGIN SET @whereSql = N' AND KozossegiSzolgalat.C_INTERVALLUMVEGE = @pIntervallumVege' END IF @pTeljesitesHelye IS NOT NULL BEGIN SET @whereSql = N' AND KozossegiSzolgalat.C_TELJESITESIHELYE LIKE ''%''+ @pTeljesitesHelye +''%''' END IF @pOraszam IS NOT NULL BEGIN SET @whereSql = N' AND KozossegiSzolgalat.C_ORASZAM = @pOraszam' END IF @pKozossegiSzolgalatTipusa IS NOT NULL BEGIN SET @whereSql = N' AND KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA = @pKozossegiSzolgalatTipusa' END SET @orderSql = N' ORDER BY KozossegiSzolgalat.C_INTERVALLUMKEZDETE DESC' SET @sql = @selectSql + @whereSql + @orderSql EXEC sp_executesql @sql, N' @pIntezmenyId INT ,@pTanevId INT ,@pTanuloId INT = NULL ,@pTanarId INT = NULL ,@pToroltElemek CHAR ,@pIntervallumKezdete DATETIME = NULL ,@pIntervallumVege DATETIME = NULL ,@pTeljesitesHelye NVARCHAR = NULL ,@pOraszam INT = NULL ,@pKozossegiSzolgalatTipusa INT = NULL' ,@pIntezmenyId = @pIntezmenyId ,@pTanevId = @pTanevId ,@pTanuloId = @pTanuloId ,@pTanarId = @pTanarId ,@pToroltElemek = @pToroltElemek ,@pIntervallumKezdete = @pIntervallumKezdete ,@pIntervallumVege = @pIntervallumVege ,@pTeljesitesHelye = @pTeljesitesHelye ,@pOraszam = @pOraszam ,@pKozossegiSzolgalatTipusa = @pKozossegiSzolgalatTipusa END