GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF OBJECT_ID('sp_GetDokumentumTanuloNaploSorszam') IS NOT NULL BEGIN
  DROP PROCEDURE [sp_GetDokumentumTanuloNaploSorszam] 
END  
GO

CREATE PROCEDURE sp_GetDokumentumTanuloNaploSorszam
	@osztalyId int

AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @students TABLE (ID INT, NaploSorszam INT, Rendez INT)
	INSERT INTO @students
	SELECT DISTINCT 
		C_TANULOID 
		, t.C_NAPLOSORSZAM
		, IIF(MONTH(MIN(C_BELEPESDATUM)) BETWEEN 9 AND 10, 1, 2)
	FROM T_TANULOCSOPORT_OSSZES tcs
		INNER JOIN T_TANULO_OSSZES t on t.id=tcs.C_TANULOID
	WHERE C_OSZTALYCSOPORTID = @osztalyId 
		AND tcs.TOROLT = 'F' 
	GROUP BY C_TANULOID, t.C_NAPLOSORSZAM

	DECLARE @max INT = (SELECT MAX(NaploSorszam) FROM @students)
	DECLARE @tanuloSorszam TABLE (Tanulo INT, Sorszam INT)

	INSERT INTO @tanuloSorszam 
	SELECT 
		s.ID
		, ISNULL(NaploSorszam, ISNULL(@max,0) + ROW_NUMBER() OVER (ORDER BY Rendez, C_NYOMTATASINEV))
	FROM @students s
		INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID=s.ID
	GROUP BY s.Id, NaploSorszam, C_NYOMTATASINEV, Rendez
	SELECT 
		Tanulo
		, Sorszam
	FROM
	@tanuloSorszam

END 
GO