DROP FUNCTION IF EXISTS fnGetTanuloOsztalyString GO CREATE FUNCTION fnGetTanuloOsztalyString ( @pTanuloId int ,@pDatum date = NULL ,@pFeladatKategoriaId int = NULL ,@pKiiratkozottNeJelenjenMeg bit = 1 ,@pKovTanev bit = 0 ,@pFilterOsztalyId int = NULL) RETURNS @retTable TABLE (Osztalynev nvarchar(4000)) AS BEGIN INSERT INTO @retTable SELECT STUFF(( SELECT ', '+OsztalyCsoport.C_NEV FROM T_TANULOCSOPORT_OSSZES TanuloCsoport INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID AND Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID AND Osztaly.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = Osztaly.ID AND OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID AND OsztalyCsoport.TOROLT = 'F' AND (OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL) INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = TanuloCsoport.C_TANEVID AND Tanev.TOROLT = 'F' WHERE TanuloCsoport.C_TANULOID = @pTanuloId AND TanuloCsoport.TOROLT = 'F' AND (TanuloCsoport.C_BELEPESDATUM <= ISNULL(@pDatum,GETDATE()) OR @pKovTanev = 1) AND (((TanuloCsoport.C_KILEPESDATUM > ISNULL(@pDatum,GETDATE()) OR TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= Tanev.C_UTOLSOTANITASINAP) OR @pKiiratkozottNeJelenjenMeg = 0) OR @pKovTanev = 1) AND (@pFilterOsztalyId IS NULL OR @pFilterOsztalyId = TanuloCsoport.C_OSZTALYCSOPORTID) FOR XML PATH('')),1,1,'') RETURN END GO