DROP PROCEDURE IF EXISTS uspGetKozossegiSzolgalatokData GO CREATE PROCEDURE uspGetKozossegiSzolgalatokData @pIntezmenyId int ,@pOsztalyCsoportId int ,@pIdoszakKezdete datetime ,@pIdoszakVege datetime ,@pOsszesOraszamKezdete int ,@pOsszesOraszamVege int ,@pTanuloNeve nvarchar(250) ,@pAnyjaNeve nvarchar(250) AS BEGIN SET NOCOUNT ON; SELECT * FROM ( SELECT currenttanulo.TanuloId as ID ,currenttanulo.TanuloId as TanuloId ,currenttanulo.TanuloNev as TanuloNev ,IIF(currenttanulo.Nevsorrend = 'T', currenttanulo.TanuloUtonev + ' ' + currenttanulo.TanuloVezeteknev, currenttanulo.TanuloVezeteknev + ' ' + currenttanulo.TanuloUtonev) as TanuloNevElotagNelkul ,currenttanulo.AnyjaNeve as AnyjaNeve ,currenttanulo.SzuletesiIdo as SzuletesiIdo ,currenttanulo.OsztalyNev as OsztalyNev ,ISNULL(SUM(kozossegiszolgalat.C_ORASZAM),0) as OsszesOraszam FROM T_FELHASZNALO_OSSZES tanulo LEFT JOIN ( SELECT DISTINCT tanulo.C_OKTATASIAZONOSITO as OktatasiAzonosito ,tanulo.ID as TanuloId ,tanulo.C_NYOMTATASINEV as TanuloNev ,tanulo.C_NEVSORREND as Nevsorrend ,tanulo.C_VEZETEKNEV as TanuloVezeteknev ,tanulo.C_UTONEV as TanuloUtonev ,tanulo.C_ANYJANEVE as AnyjaNeve ,tanulo.C_SZULETESIDATUM as SzuletesiIdo ,osztalycsoport.C_NEV as OsztalyNev FROM T_FELHASZNALO tanulo LEFT JOIN T_TANULOCSOPORT tanulocsoport ON tanulocsoport.C_TANULOID = tanulo.ID AND tanulocsoport.TOROLT = 'F' LEFT JOIN T_OSZTALYCSOPORT osztalycsoport ON osztalycsoport.ID = tanulocsoport.C_OSZTALYCSOPORTID AND osztalycsoport.TOROLT = 'F' WHERE tanulo.TOROLT = 'F' AND osztalycsoport.ID = @pOsztalyCsoportId ) currenttanulo ON currenttanulo.OktatasiAzonosito IS NOT NULL AND (@pTanuloNeve IS NULL OR currenttanulo.TanuloNev LIKE ('%'+ @pTanuloNeve +'%')) AND (@pAnyjaNeve IS NULL OR currenttanulo.AnyjaNeve LIKE ('%'+ @pAnyjaNeve +'%')) LEFT JOIN T_TANULOKOZOSSEGISZOLGALAT_OSSZES kozossegiszolgalat ON kozossegiszolgalat.C_TANULOID = Tanulo.ID AND kozossegiszolgalat.C_INTEZMENYID = @pIntezmenyId AND (@pIdoszakKezdete IS NULL OR kozossegiszolgalat.C_INTERVALLUMKEZDETE >= @pIdoszakKezdete) AND (@pIdoszakVege IS NULL OR kozossegiszolgalat.C_INTERVALLUMVEGE <= @pIdoszakVege) AND kozossegiszolgalat.TOROLT = 'F' WHERE tanulo.C_OKTATASIAZONOSITO = currenttanulo.OktatasiAzonosito AND tanulo.C_INTEZMENYID = @pIntezmenyId AND tanulo.TOROLT = 'F' GROUP BY currenttanulo.TanuloId, currenttanulo.TanuloNev, currenttanulo.Nevsorrend, currenttanulo.TanuloVezeteknev, currenttanulo.TanuloUtonev, currenttanulo.AnyjaNeve, currenttanulo.SzuletesiIdo, currenttanulo.OsztalyNev ) result WHERE (@pOsszesOraszamKezdete IS NULL OR @pOsszesOraszamKezdete >= result.OsszesOraszam) AND (@pOsszesOraszamVege IS NULL OR @pOsszesOraszamVege <= result.OsszesOraszam) ORDER BY result.TanuloNevElotagNelkul ASC END GO