IF OBJECT_ID('dbo.fnGetTanorakNevekkel') IS NOT NULL BEGIN DROP FUNCTION dbo.fnGetTanorakNevekkel END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- A Funkció visszaadja egy pedagógus, egy osztály vagy csoport, egy tantárgy vagy egy terem minden -- naplózatlan, naplózott, megtartott és nem-megtartott, helyettesített, vagy akármilyen óráját -- egy megadott időszakra CREATE FUNCTION dbo.fnGetTanorakNevekkel ( @tanevId INT, -- Kötelezően átadandó @kezdoDatum DATETIME = NULL, -- NULL esetén az adott tanév első napjától vizsgálja @vegDatum DATETIME = NULL, -- NULL esetén az adott tanév utolsó napjáig vizsgálja @tanarId INT = NULL, -- NULL esetén minden pedagógus órái lejönnek @tantargyId INT = NULL, -- NULL esetén minden pedagógus órái lejönnek @teremId INT = NULL, -- NULL esetén minden pedagógus órái lejönnek @osztalycsoportId INT = NULL, -- NULL esetén minden osztály vagy csoport órái lejönnek @isKapcsolodoCsoportok BIT = 0 -- 1 esetén az osztály vagy csoport kapcsolódó osztályait is csoportojait is lehozza, -- csak akkor értelmezhető, ha van @osztalycsoportId is. ) RETURNS @retTable TABLE ( OraDatuma DATETIME, OraKezdete DATETIME, OraVege DATETIME, HetNapjaId INT, CsengetesiRendId INT, CsengetesiRendOraId INT, Oraszam INT, OraTulajdonosId INT, TanarId INT, HelyettesitoId INT, OsztalyCsoportId INT, TantargyId INT, TeremId INT, IsHelyettesitett BIT, IsNaplozott BIT, IsMobilNaplozott BIT, IsElmaradt BIT, IsOrarendNelkul BIT, OrarendiOraId INT, TanitasiOraId INT, TanarNev nvarchar(1000), HelyettesitoNev nvarchar(1000), OsztalyCsoportNev nvarchar(1000), TantargyNev nvarchar(1000), TeremNev nvarchar(1000) ) BEGIN INSERT INTO @retTable ( OraDatuma, OraKezdete, OraVege, HetNapjaId, CsengetesiRendId, CsengetesiRendOraId, Oraszam, OraTulajdonosId, TanarId, HelyettesitoId, OsztalyCsoportId, TantargyId, TeremId, IsHelyettesitett, IsNaplozott, IsMobilNaplozott, IsElmaradt, IsOrarendNelkul, OrarendiOraId, TanitasiOraId, TanarNev, HelyettesitoNev, OsztalyCsoportNev, TantargyNev, TeremNev) SELECT -- Időszak adatok orarend.OraDatuma, orarend.OraKezdete, orarend.OraVege, orarend.HetNapjaId, orarend.CsengetesiRendId, orarend.CsengetesiRendOraId, orarend.Oraszam, -- Kapcsolati adatok orarend.OraTulajdonosId, orarend.TanarId, orarend.HelyettesitoId, orarend.OsztalyCsoportId, orarend.TantargyId, orarend.TeremId, -- Egyéb adatok orarend.IsHelyettesitett, orarend.IsNaplozott, orarend.IsMobilNaplozott, orarend.IsElmaradt, orarend.IsOrarendNelkul, orarend.OrarendiOraId, orarend.TanitasiOraId, -- Név adatok ISNULL(tanar.C_NYOMTATASINEV,''), ISNULL(helyettesito.C_NYOMTATASINEV,''), ISNULL(osztalycsoport.C_NEV,''), ISNULL(tantargy.C_NEV,''), ISNULL(terem.C_NEV,'') FROM fnGetTanorak(@tanevId,@kezdoDatum,@vegDatum,@tanarId,@tantargyId,@teremId,@osztalycsoportId,@isKapcsolodoCsoportok) orarend LEFT JOIN T_FELHASZNALO tanar ON tanar.ID = orarend.TanarId LEFT JOIN T_FELHASZNALO helyettesito ON helyettesito.ID = orarend.HelyettesitoId LEFT JOIN T_OSZTALYCSOPORT osztalycsoport ON osztalycsoport.ID = orarend.OsztalyCsoportId LEFT JOIN T_TANTARGY tantargy ON tantargy.ID = orarend.TantargyId LEFT JOIN T_TEREM terem ON terem.ID = orarend.TeremId RETURN END GO