DROP FUNCTION IF EXISTS fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent GO CREATE FUNCTION fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent ( @tanevId int ,@osztalyCsoportId int ) RETURNS @result TABLE ( Orakszama int ,TanuloId int ,TantargyId int ,TantargyNev nvarchar(255) ,Fotargye char(1) ,Altargye char(1) ,Gyakorlati char(1) ) AS BEGIN DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId) INSERT INTO @result SELECT COUNT(1) AS Orakszama ,tcs.C_TANULOID AS TanuloId ,tgy.ID AS TantargyId ,ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS TantargyNev ,C_FOTARGYE AS Fotargye ,C_ALTANTARGYKENTNYOMTATVANYBAN AS Altargye ,C_GYAKORLATI AS Gyakorlati FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOCSOPORT_OSSZES AS tcsAll ON tcsAll.C_TANULOID = tcs.C_TANULOID AND tcsAll.TOROLT='F' INNER JOIN T_TANITASIORA_OSSZES AS tao ON tao.C_OSZTALYCSOPORTID = tcsAll.C_OSZTALYCSOPORTID AND tao.TOROLT='F' AND tao.C_DATUM >= tcsAll.C_BELEPESDATUM AND (tcsAll.C_KILEPESDATUM IS NULL OR tcsAll.C_KILEPESDATUM >=tao.C_DATUM) AND tao.C_DATUM >= tcs.C_BELEPESDATUM AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tao.C_DATUM) AND tao.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId)) AND tao.C_MEGTARTOTT = 'T' AND tao.C_TANEVID = @TanevId INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = tao.C_OSZTALYCSOPORTID AND ocs.TOROLT='F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId AND ocs.C_TANEVID = @TanevId INNER JOIN T_TANTARGY_OSSZES AS tgy ON tgy.ID = tao.C_TANTARGYID AND tgy.TOROLT='F' AND tgy.C_TANEVID = @TanevId WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.TOROLT='F' GROUP BY tcs.C_TANULOID ,tgy.ID ,C_GYAKORLATI ,tgy.C_NEVNYOMTATVANYBAN ,tgy.C_NEV ,tgy.C_FOTARGYE ,tgy.C_ALTANTARGYKENTNYOMTATVANYBAN RETURN END GO