SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('[dbo].[sp_GetPedagogusOrarendOsszes]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_GetPedagogusOrarendOsszes] END GO CREATE PROCEDURE [dbo].[sp_GetPedagogusOrarendOsszes] @tanevID INT, @intezmenyId INT, @aktivTanevId INT, @isEgyebFoglalkozasok BIT, @pedagogusId INT, @orarendErvenyessegiDatum DATE AS BEGIN SELECT DISTINCT IntezmenyAdatok.C_NEV as intezmeny ,ISNULL(IntezmenyAdatok.C_VAROS + ', ', '') + dbo.fnGetDokumentumDatumFormatum(GETDATE()) AS kelt ,(SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE Id = @pedagogusId) PedagogusNev FROM T_INTEZMENY_OSSZES Intezmeny INNER JOIN T_INTEZMENYADATOK_OSSZES IntezmenyAdatok ON IntezmenyAdatok.C_INTEZMENYID = Intezmeny.ID AND IntezmenyAdatok.C_TANEVID = @tanevid WHERE Intezmeny.Id = @intezmenyId AND Intezmeny.TOROLT='F' DECLARE @tabla TABLE ( PedagogusId INT, Ora INT, Hetirend INT, PedagogusNev NVARCHAR(MAX), Hetfo NVARCHAR(MAX), Kedd NVARCHAR(MAX), Szerda NVARCHAR(MAX), Csutortok NVARCHAR(MAX), Pentek NVARCHAR(MAX), Szombat NVARCHAR(MAX), HetirendNev NVARCHAR(MAX) ) SELECT Alkalmazott.ID ,Felhasznalo.C_NYOMTATASINEV Nev INTO #Pedagogusok FROM T_ALKALMAZOTT_OSSZES Alkalmazott INNER JOIN (SELECT DISTINCT C_TANARID FROM T_ORARENDIORA_OSSZES WHERE C_TANEVID = @tanevID AND TOROLT = 'F') OrarendiOra on OrarendiOra.C_TANARID = Alkalmazott.Id INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = Alkalmazott.Id WHERE Alkalmazott.torolt='F' AND Alkalmazott.C_ALTANEVID = @tanevID AND (@pedagogusId = -1 OR Alkalmazott.Id = @pedagogusId) DECLARE kurzor CURSOR FOR SELECT ID FROM #Pedagogusok DECLARE @TanarId int OPEN kurzor FETCH NEXT FROM kurzor INTO @TanarId WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO @tabla EXEC sp_GetPedagogusOrarend @intezmenyId, @tanevid, @tanarid, @aktivTanevId, @isEgyebFoglalkozasok, @orarendErvenyessegiDatum FETCH NEXT FROM kurzor INTO @TanarId END CLOSE kurzor DEALLOCATE kurzor SELECT ID PedagogusId ,Nev ,Hetirend FROM #Pedagogusok CROSS JOIN (SELECT DISTINCT HetirendNev FROM @tabla) Hetirend (Hetirend) ORDER BY Nev, Hetirend SELECT * FROM @tabla ORDER BY Hetirend, Ora END GO