GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('sp_GetDokumentumTanuloEvesOraszamai') IS NOT NULL BEGIN DROP PROCEDURE [sp_GetDokumentumTanuloEvesOraszamai] END GO CREATE PROCEDURE sp_GetDokumentumTanuloEvesOraszamai @osztalyId int AS BEGIN SET NOCOUNT ON; DECLARE @students TABLE (ID INT, NaploSorszam INT, Rendez INT) INSERT INTO @students SELECT DISTINCT C_TANULOID , C_BEIRASINAPLOSORSZAM , IIF(MONTH(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' AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM > GETDATE()) AND C_BELEPESDATUM < GETDATE() DECLARE @max INT = (SELECT MAX(NaploSorszam) FROM @students) DECLARE @tanuloSorszam TABLE (Tanulo INT, Sorszam INT) INSERT INTO @tanuloSorszam SELECT s.ID , ISNULL(NaploSorszam, @max + 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 END