SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('fnGetDokumentumKapcsolodoOsztalycsoportok') IS NOT NULL BEGIN DROP FUNCTION fnGetDokumentumKapcsolodoOsztalycsoportok END GO CREATE FUNCTION fnGetDokumentumKapcsolodoOsztalycsoportok (@osztalyCsoportId int, @ptanevId int, @csakTanoraiCelu INT= 1) RETURNS TABLE RETURN ( SELECT @osztalyCsoportId AS ID, 'OsztalycsoportOraja' AS OKA UNION SELECT ID, 'OsztalybontottOra' AS OKA FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = @osztalyCsoportId AND C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@ptanevId)) UNION SELECT DISTINCT tcs.C_OSZTALYCSOPORTID, 'TanuloMasOra' AS OKA FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_CSOPORT_OSSZES ON T_CSOPORT_OSSZES.ID = tcs.C_OSZTALYCSOPORTID INNER JOIN ( SELECT DISTINCT x.C_TANULOID, x.C_BELEPESDATUM, x.C_KILEPESDATUM FROM T_TANULOCSOPORT_OSSZES x INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = x.C_OSZTALYCSOPORTID INNER JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID WHERE x.C_OSZTALYCSOPORTID = @osztalyCsoportId AND x.TOROLT = 'F' AND (x.C_KILEPESDATUM > T_TANEV_OSSZES.C_KEZDONAP OR x.C_KILEPESDATUM IS NULL) ) AS OSZTALY_TANULO ON OSZTALY_TANULO.C_TANULOID = tcs.C_TANULOID AND tcs.C_BELEPESDATUM >= OSZTALY_TANULO.C_BELEPESDATUM AND (OSZTALY_TANULO.C_KILEPESDATUM IS NULL OR tcs.C_BELEPESDATUM < OSZTALY_TANULO.C_KILEPESDATUM) WHERE tcs.C_OSZTALYCSOPORTID <> @osztalyCsoportId AND tcs.TOROLT = 'F' AND tcs.C_OSZTALYCSOPORTID NOT IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = @osztalyCsoportId) AND tcs.C_OSZTALYCSOPORTID NOT IN (SELECT C_OSZTALYBONTASID AS ID FROM T_CSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL) AND tcs.C_OSZTALYCSOPORTID NOT IN ( SELECT ID FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID IN (SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @osztalyCsoportId) ) AND (@csakTanoraiCelu = 0 OR C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@ptanevId))) UNION SELECT C_OSZTALYBONTASID AS ID, 'OsztalybontottOra2' AS OKA FROM T_CSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL AND (@csakTanoraiCelu = 0 OR C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@ptanevId))) UNION SELECT ID, 'OsztalybontottOra3' AS OKA FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID IN ( SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @osztalyCsoportId ) AND ID <> @osztalyCsoportId AND (@csakTanoraiCelu = 0 OR C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@ptanevId))) ) GO