DROP PROCEDURE IF EXISTS uspGetKozossegiSzolgalatokExportData GO CREATE PROCEDURE uspGetKozossegiSzolgalatokExportData @pIntezmenyId int ,@pOsztalyCsoportIdList nvarchar(max) ,@pTanuloIds nvarchar(max) = NULL ,@pIntervallumKezdete datetime = NULL ,@pIntervallumVege datetime = NULL ,@pTeljesitesHelye nvarchar(100) = NULL ,@pKozossegiSzolgalatTipusa int = NULL ,@pOsszesOraszamKezdete int = NULL ,@pOsszesOraszamVege int = NULL ,@pTanuloNev nvarchar(250) = NULL ,@pAnyjaNeve nvarchar(250) = NULL AS BEGIN SET NOCOUNT ON; DECLARE @sql nvarchar(max) ,@selectSql nvarchar(max) ,@whereSql nvarchar(max) ,@orderSql nvarchar(max) ,@OktatasiAzonosito nvarchar (20) SET @selectSql = N' DROP TABLE IF EXISTS #OsszesitoTabla CREATE TABLE #OsszesitoTabla ( ID int ,TanuloId int ,TanuloNev nvarchar(500) ,TanuloNevElotagNelkul nvarchar(500) ,AnyjaNeve nvarchar(500) ,SzuletesiIdo datetime ,OsztalyNev nvarchar(200) ,OsszesOraszam decimal(18,2) ,OktatasiAzonosito nvarchar(20) ); INSERT INTO #OsszesitoTabla (ID, TanuloId, TanuloNev, TanuloNevElotagNelkul, AnyjaNeve, SzuletesiIdo, OsztalyNev, OsszesOraszam, OktatasiAzonosito) EXEC uspGetKozossegiSzolgalatokData @pIntezmenyId = @pIntezmenyId ,@pOsztalyCsoportIdList = @pOsztalyCsoportIdList ,@pIdoszakKezdete = @pIntervallumKezdete ,@pIdoszakVege = @pIntervallumVege ,@pOsszesOraszamKezdete = @pOsszesOraszamKezdete ,@pOsszesOraszamVege = @pOsszesOraszamVege ,@pTanuloNeve = @pTanuloNev ,@pAnyjaNeve = @pAnyjaNeve SELECT * FROM #OsszesitoTabla SELECT KozossegiSzolgalat.ID AS ID ,KozossegiSzolgalat.C_INTERVALLUMKEZDETE AS IntervallumKezdete ,KozossegiSzolgalat.C_INTERVALLUMVEGE AS IntervallumVege ,KozossegiSzolgalat.C_ROGZITESDATUM AS RogzitesDatuma ,KozossegiSzolgalat.C_TELJESITESIHELYE AS TeljesitesiHelye ,KozossegiSzolgalat.C_ORASZAM AS Oraszam ,KozossegiSzolgalat.C_KOZOSSEGISZOLGALATTIPUSA AS KozossegiSzolgalatTipusa ,KozossegiSzolgalat.C_MEGJEGYZES AS Megjegyzes ,tmpOsszesito.TanuloId AS TanuloId ,tmpOsszesito.TanuloNev AS TanuloNev ,tmpOsszesito.OsztalyNev AS OsztalyNev ,KozossegiSzolgalat.C_UGYIRATSZAM AS Ugyiratszam ,tmpOsszesito.OktatasiAzonosito AS OktatasiAzonosito FROM #OsszesitoTabla tmpOsszesito INNER JOIN T_FELHASZNALO_OSSZES Tanulo ON Tanulo.C_OKTATASIAZONOSITO = tmpOsszesito.OktatasiAzonosito COLLATE Hungarian_CI_AI AND Tanulo.C_INTEZMENYID = @pIntezmenyId INNER JOIN T_TANULOKOZOSSEGISZOLGALAT_OSSZES KozossegiSzolgalat ON KozossegiSzolgalat.C_TANULOID = Tanulo.ID AND KozossegiSzolgalat.C_INTEZMENYID = @pIntezmenyId' SET @whereSql = N' WHERE KozossegiSzolgalat.TOROLT = ''F'' ' IF @pTanuloIds IS NOT NULL BEGIN SET @whereSql += N' AND tmpOsszesito.TanuloId IN (' + @pTanuloIds + ') ' 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 = @pTeljesitesHelye' 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 ,@pIntervallumKezdete datetime = NULL ,@pIntervallumVege datetime = NULL ,@pTeljesitesHelye nvarchar(100) = NULL ,@pOsszesOraszamKezdete int = NULL ,@pOsszesOraszamVege int = NULL ,@pOsztalyCsoportIdList nvarchar(max) = NULL ,@pKozossegiSzolgalatTipusa int = NULL ,@pTanuloNev nvarchar(250) = NULL ,@pAnyjaNeve nvarchar(250) = NULL ,@pTanuloIds nvarchar(max) = NULL' ,@pIntezmenyId = @pIntezmenyId ,@pIntervallumKezdete = @pIntervallumKezdete ,@pIntervallumVege = @pIntervallumVege ,@pTeljesitesHelye = @pTeljesitesHelye ,@pOsszesOraszamKezdete = @pOsszesOraszamKezdete ,@pOsszesOraszamVege = @pOsszesOraszamVege ,@pOsztalyCsoportIdList = @pOsztalyCsoportIdList ,@pKozossegiSzolgalatTipusa = @pKozossegiSzolgalatTipusa ,@pTanuloNev = @pTanuloNev ,@pAnyjaNeve = @pAnyjaNeve ,@pTanuloIds = @pTanuloIds END GO