DROP PROCEDURE IF EXISTS uspGetDokumentumTanuloOrarendOsztalyonkent GO CREATE PROCEDURE uspGetDokumentumTanuloOrarendOsztalyonkent @tanevId int ,@osztalyId int ,@aktivTanevId int ,@isEgyebFoglalkozasok bit ,@pTanuloId int = NULL ,@orarendErvenyessegiDatum date AS BEGIN SET NOCOUNT ON; DECLARE @feladatKategoriaId int ,@tanuloId int DECLARE @tabla TABLE ( TanuloId int ,Ora int ,HetirendId int ,Hetfo nvarchar (max) ,Kedd nvarchar (max) ,Szerda nvarchar (max) ,Csutortok nvarchar (max) ,Pentek nvarchar (max) ,Szombat nvarchar (max) ,Hetirend nvarchar (max) ,TanuloNev nvarchar (max) ) SELECT TOP 1 @feladatKategoriaId = o.C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES o WHERE o.ID = @osztalyId SELECT TanuloId ,C_NYOMTATASINEV AS TanuloNev INTO #Tanulok FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') Tanulok INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = Tanulok.TanuloId WHERE @pTanuloId IS NULL OR @pTanuloId = TanuloId DECLARE kurzor CURSOR FOR SELECT TanuloId FROM #Tanulok OPEN kurzor FETCH NEXT FROM kurzor INTO @tanuloId WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO @tabla EXEC sp_GetDokumentumTanuloOrarend @tanevID ,@tanuloId ,@aktivTanevId ,@isEgyebFoglalkozasok ,@orarendErvenyessegiDatum ,@feladatKategoriaId FETCH NEXT FROM kurzor INTO @tanuloId END CLOSE kurzor DEALLOCATE kurzor SELECT TanuloId ,TanuloNev ,Hetirend FROM #Tanulok Tanulok CROSS JOIN( SELECT DISTINCT Hetirend FROM @tabla ) AS Hetirend(Hetirend) ORDER BY Hetirend SELECT OsztalyokOrarendje.* FROM @tabla AS OsztalyokOrarendje ORDER BY Ora END GO