SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('sp_GetDokumentumHelyettesitesekByDateInterval') IS NOT NULL BEGIN DROP PROCEDURE sp_GetDokumentumHelyettesitesekByDateInterval END GO CREATE PROCEDURE sp_GetDokumentumHelyettesitesekByDateInterval @tanevId INT, @helyettesitesListaFormatumId INT = 0, --0 helyettesitett, 1 helyettesito @idoszakKezdete DATE, @idoszakVege DATE AS BEGIN SET NOCOUNT ON; SELECT helyettesito.ID HelyettesitoId ,helyettesitesett.ID HelyettesitettId ,dbo.fnGetDokumentumDatumFormatum(hi.C_HELYETTESITESNAPJA) HetNapja ,ISNULL(CONVERT(NVARCHAR(5), orarendiOra.C_ORASZAM) + '.', '')Oraszam ,helyettesito.C_NYOMTATASINEV HelyettesitoNeve ,helyettesitesett.C_NYOMTATASINEV HelyettesitettNeve ,ocs.C_NEV OsztalyCsoportNev ,tantargy.C_NEV TantargyNev ,terem.C_NEV TeremNev ,HelyettesitesTipusa.C_NAME HelyettesitesTipusa ,helyettesito.C_OKTATASIAZONOSITO HelyettesitoOktatasiAzon ,helyettesitesett.C_OKTATASIAZONOSITO HelyettesitettOktatasiAzon INTO #adatok FROM T_HELYETTESITESIIDOSZAK_OSSZES hi LEFT JOIN T_ORARENDIORA_OSSZES orarendiOra ON orarendiOra.Id = hi.C_HELYETTESITETTORARENDID AND orarendiOra.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = hi.C_HELYETTESTANAROKID AND helyettesito.TOROLT = 'F' LEFT JOIN T_FELHASZNALO_OSSZES helyettesitesett ON helyettesitesett.ID = orarendiOra.C_TANARID AND helyettesitesett.TOROLT = 'F' LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = orarendiOra.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = orarendiOra.C_TANTARGYID AND tantargy.TOROLT = 'F' LEFT JOIN T_TEREM_OSSZES terem ON terem.Id = orarendiOra.C_TEREMID AND terem.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES HelyettesitesTipusa ON HelyettesitesTipusa.ID = hi.C_HELYETTESITESTIPUS AND HelyettesitesTipusa.C_TANEVID = @tanevId WHERE hi.TOROLT = 'F' AND hi.C_TANEVID = @tanevId AND hi.C_HELYETTESITESNAPJA BETWEEN @idoszakKezdete AND @idoszakVege ORDER BY dbo.fnGetDokumentumDatumFormatum(hi.C_HELYETTESITESNAPJA), orarendiOra.C_ORASZAM -- elmaradt órák hozzáadása INSERT INTO #adatok SELECT NULL HelyettesitoId ,tanar.ID HelyettesitettId ,dbo.fnGetDokumentumDatumFormatum(ora.C_DATUM) HetNapja ,ISNULL(CONVERT(NVARCHAR(5), ora.C_ORASZAM) + '.', '')Oraszam ,'Elmaradt óra' HelyettesitoNeve ,tanar.C_NYOMTATASINEV HelyettesitettNeve ,ocs.C_NEV OsztalyCsoportNev ,tantargy.C_NEV TantargyNev ,terem.C_NEV TeremNev ,'' HelyettesitesTipusa ,NULL HelyettesitoOktatasiAzon ,tanar.C_OKTATASIAZONOSITO HelyettesitettOktatasiAzon FROM T_TANITASIORA_OSSZES ora LEFT JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = ora.C_TANARID AND tanar.TOROLT = 'F' LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = ora.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = ora.C_TANTARGYID AND tantargy.TOROLT = 'F' LEFT JOIN T_TEREM_OSSZES terem ON terem.Id = ora.C_TEREMID AND terem.TOROLT = 'F' WHERE ora.TOROLT = 'F' AND ora.C_MEGTARTOTT = 'F' AND ora.C_TANEVID = @tanevId AND ora.C_DATUM BETWEEN @idoszakKezdete AND @idoszakVege ORDER BY dbo.fnGetDokumentumDatumFormatum(ora.C_DATUM), ora.C_ORASZAM SELECT DISTINCT HetNapja FROM #adatok IF @helyettesitesListaFormatumId = 0 BEGIN SELECT DISTINCT HelyettesitettId PedagogusId, HelyettesitettNeve PedagogusNev, HetNapja FROM #adatok ORDER BY HelyettesitettNeve SELECT * FROM #adatok ORDER BY HetNapja, Oraszam END ELSE BEGIN SELECT DISTINCT HelyettesitoId PedagogusId, HelyettesitoNeve PedagogusNev, HetNapja FROM #adatok ORDER BY HelyettesitoNeve SELECT * FROM #adatok ORDER BY HetNapja, Oraszam END END GO