DROP FUNCTION IF EXISTS fnGetOsztalyCsoportTanuloOsztalyList GO CREATE FUNCTION fnGetOsztalyCsoportTanuloOsztalyList ( @pTanevId int ,@pOsztalyCsoportId int ,@pFeladatKategoriaId int ,@pDatum date = NULL ,@pIsFromSzervezet bit = 0 ) RETURNS TABLE AS RETURN --NOTE: Azért kell a DISTINCT, ha ugyanoda ki-/besorolgatják a tanulót! SELECT DISTINCT TanuloCsoport.C_TANULOID ,OsztalyCsoport.ID ,OsztalyCsoport.C_EVFOLYAMTIPUSA FROM T_TANULOCSOPORT_OSSZES TanuloCsoport INNER JOIN T_TANULOCSOPORT_OSSZES SourceTanuloCsoport ON SourceTanuloCsoport.TOROLT = 'F' AND SourceTanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND SourceTanuloCsoport.C_TANULOID = TanuloCsoport.C_TANULOID 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 @pIsFromSzervezet = 1) WHERE TanuloCsoport.C_TANEVID = @pTanevId 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()))) GO