SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('fnGetDokumentumTanulokTanultTantargyai') IS NOT NULL
BEGIN
	DROP FUNCTION fnGetDokumentumTanulokTanultTantargyai
END
GO

CREATE FUNCTION fnGetDokumentumTanulokTanultTantargyai (@tanevId INT, @osztalyCsoportId INT)
RETURNS @retTanuloTantargyai TABLE 
(
	TanuloId INT, 
	TanuloCsoportId INT, 
	TantargyNev NVARCHAR(MAX)
)
AS
BEGIN
	DECLARE @UtolsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')

	INSERT INTO @retTanuloTantargyai 
	SELECT DISTINCT
		 OsztalyTanuloi.TanuloId			TanuloId
		,OsztalyTanuloi.TanuloCsoportId		TanuloCsoportId
		,Tantargy.C_NEV						TantargyNev
	FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') OsztalyTanuloi
		INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON OsztalyTanuloi.TanuloId = TanuloCsoport.C_TANULOID AND TanuloCsoport.TOROLT = 'F'
		INNER JOIN T_FOGLALKOZAS_OSSZES Foglalkozas	on TanuloCsoport.C_OSZTALYCSOPORTID = Foglalkozas.C_OSZTALYCSOPORTID AND Foglalkozas.TOROLT = 'F'
		INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.ID = Foglalkozas.C_TANTARGYID AND Tantargy.TOROLT = 'F'
	WHERE 
		(TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM BETWEEN OsztalyTanuloi.BelepesDatum AND ISNULL(OsztalyTanuloi.KilepesDatum, @UtolsoNapTanevRendje))

RETURN
END
GO