DROP FUNCTION IF EXISTS fnGetTanuloOsztaly GO CREATE FUNCTION fnGetTanuloOsztaly ( @pTanuloId int ,@pDatum date = NULL ,@pFeladatKategoriaId int = NULL ,@pKiiratkozottNeJelenjenMeg bit = 1 ,@pOktatasiNevelesiFeladatId int = NULL ) RETURNS @ResultTable TABLE ( ID int ,EvfolyamTipusId int ,OsztalyNev nvarchar (255) ,BelepesDatuma datetime ) AS BEGIN INSERT INTO @ResultTable ( ID ,EvfolyamTipusId ,OsztalyNev ,BelepesDatuma ) SELECT OsztalyCsoport.ID ,OsztalyCsoport.C_EVFOLYAMTIPUSA ,OsztalyCsoport.C_NEV ,TanuloCsoport.C_BELEPESDATUM 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_FELADATELLATASIHELY_OSSZES FeladatEllatasiHely ON FeladatEllatasiHely.ID = OsztalyCsoport.C_FELADATELLATASIHELYID AND (FeladatEllatasiHely.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId OR @pOktatasiNevelesiFeladatId IS NULL) WHERE TanuloCsoport.C_TANULOID = @pTanuloId AND TanuloCsoport.TOROLT = 'F' AND TanuloCsoport.C_BELEPESDATUM <= ISNULL(@pDatum, CONVERT(date, GETDATE())) AND ((TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM > ISNULL(@pDatum, CONVERT(date, GETDATE()))) OR @pKiiratkozottNeJelenjenMeg = 0) RETURN END GO