DROP FUNCTION IF EXISTS dbo.fnGetOsztalyCsoportTanuloinakTanugyiAdatai
GO

CREATE FUNCTION dbo.fnGetOsztalyCsoportTanuloinakTanugyiAdatai(
     @pOsztalyCsoportId int
    ,@pDatum date = NULL)
RETURNS @tanugyiAdatok TABLE(TanuloId int,TanugyiAdatokId int)
AS
BEGIN

    DECLARE  @defaultKatId int = 7553
    IF @pDatum IS NULL
        SET @pDatum = GETDATE()

    INSERT INTO @tanugyiAdatok
        SELECT
             t.ID AS TanuloId
            ,tta.ID AS TanuloTanugyiAdatokId
        FROM T_TANULO_OSSZES t
            INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON t.ID = tcs.C_TANULOID AND tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND tcs.TOROLT = 'F'
                AND tcs.C_BELEPESDATUM <= @pDatum
                AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @pDatum)
            INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_TANULOID = tcs.C_TANULOID AND tcso.TOROLT='F'
                AND tcso.C_BELEPESDATUM <= @pDatum
                AND (tcso.C_KILEPESDATUM IS NULL OR tcso.C_KILEPESDATUM > @pDatum)
            INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcso.C_OSZTALYCSOPORTID AND o.TOROLT='F'
            INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
            INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcso.ID AND tta.TOROLT='F'
        WHERE (ocs.C_FELADATKATEGORIAID = @defaultKatId) AND t.TOROLT = 'F'
    RETURN
END
GO