DROP PROCEDURE IF EXISTS uspSzirStatOktato GO CREATE PROCEDURE uspSzirStatOktato @pTanevId int ,@pIntezmenyid int AS BEGIN DECLARE @datum datetime SELECT @datum = LEFT(tv.C_NEV, 4) + '1001' FROM T_TANEV tv WHERE ID = @pTanevId SELECT fh.ID AS TanuloIdAlkalmazottId ,fh.C_NYOMTATASINEV + ' (' + ISNULL(NULLIF(fh.C_OKTATASIAZONOSITO, ''), '-') + ')' AS AlkalmazottOktatasiAzonosito ,ia.C_OMKOD AS IntezmenyOmAzonosito ,ia.C_NEV AS IntezmenyNev ,ia.C_VAROS AS IntezenyTelepules ,ia.C_IRANYITOSZAM AS IntezmenyIrszam ,RTRIM(CONCAT(ia.C_KOZTERULETNEV, ' ', ia.C_KOZTERULETJELLEGENEV,' ', ia.C_HAZSZAM, ' ', ia.C_EMELET, ' ', ia.C_AJTO)) AS IntezmenyCim ,ISNULL(NULLIF(ia.C_EMAILCIM, ''), '-') AS IntezmenyEmailcim ,CONCAT(ia.C_OMKOD, '/', fhely.C_FELADATELLATASIHELYKOD) AS FelhelyAzonosito ,mhely.C_NEV AS FelhelyNev ,mhely.C_VAROS AS FelhelyTelepules ,mhely.C_IRANYITOSZAM AS FelhelyIrszam ,RTRIM(CONCAT(mhely.C_KOZTERULETNEV, ' ', mhely.C_KOZTERULETJELLEGENEV,' ', mhely.C_HAZSZAM, ' ', mhely.C_EMELET, ' ', mhely.C_AJTO)) AS FelhelyCim ,ISNULL(NULLIF(mhely.C_EMAILCIM, ''), '-') AS FelhelyEmailcim ,fhelytip.C_NAME AS FelhelyTipus ,IIF(munkaviszony.ID = 6467, 'Nem', munkaviszony.C_NAME) AS AlkalmazottFoMunkaviszonyu ,IIF(munkaviszony.ID = 6467, '-', nem.C_NAME) AS AlkalmazottNemFoMunkaviszonyu ,IIF(munkaviszony.ID = 6467, '-', CAST(DATEDIFF(YEAR, fh.C_SZULETESIDATUM, @datum) AS nvarchar(3))) AS AlkalmazottKorev ,IIF(munkaviszony.ID = 6467, '-', vezetoi.C_NAME) AS AlkalmazottVezetoiMegbizas ,REPLACE(IIF(munkaviszony.ID = 6467, '-', munkakor.C_NAME), ' (*)', '') AS AlkalmazottMunkakor ,IIF(munkaviszony.ID = 6467, '-', vegzettseg.C_NAME) AS AlkalmazottVegzettseg ,IIF(munkaviszony.ID = 6467, '-', fokozat.C_NAME) AS AlkalmazottFokozat ,IIF(munkaviszony.ID = 6467, '-', ISNULL(targykat.Targykat1, '-')) AS AlkalmazottTargykat1 ,IIF(munkaviszony.ID = 6467, '-', ISNULL(targykat.Targykat2, '-')) AS AlkalmazottTargykat2 ,IIF(munkaviszony.ID = 6467, '-', ISNULL(targykat.Targykat3, '-')) AS AlkalmazottTargykat3 ,IIF(munkaviszony.ID = 6467, '-', ISNULL(tantervijellemzo.C_NAME, '-')) AS AlkalmazottTanterviJellemzo ,IIF(munkaviszony.ID = 6467, '-', IIF(ma.C_NYUGDIJAS = 'T', 'Igen', 'Nem')) AS AlkalmazottNyugdijas ,IIF(munkaviszony.ID = 6467, '-', IIF(ma.C_TARTOSHELYETTESITES = 'T', 'Igen', 'Nem')) AS AlkalmazottTartosTavollevo ,IIF(munkaviszony.ID = 6467, '-', IIF(ma.C_BESOROLASIFOKOZAT = 3044 AND DATEDIFF(YEAR, fh.C_SZULETESIDATUM, '20211001') < 30, 'Igen', 'Nem')) AS AlkalmazottPalyakezdo ,IIF(munkaviszony.ID = 6467, '-', IIF(ma.C_ISINTERNETETOKTCELRAHASZNAL = 'T', 'Igen', 'Nem')) AS AlkalmazottInternetetHasznalo ,IIF(munkaviszony.ID = 6467, '-', IIF(ma.C_ISINFORMATKEPISMRENDELKEZIK = 'T', 'Igen', 'Nem')) AS AlkalmazottInfroIsmeretek ,IIF(munkaviszony.ID = 6467, '-', IIF(ma.C_ISIKTESZKOZOKETLGALABB40HASZ = 'T', 'Igen', 'Nem')) AS AlkalmazottIktEszkoz ,IIF(munkaviszony.ID = 6467, ISNULL(nem.C_NAME, '-'), '-') AS AlkalmazottOraadoNem ,IIF(munkaviszony.ID = 6467, ISNULL(tantervijellemzo.C_NAME, '-'), '-') AS AlkalmazottOraadoTanterviJellemzo FROM T_FELHASZNALO fh INNER JOIN T_ALKALMAZOTT a ON a.ID = fh.ID AND a.TOROLT = 'F' INNER JOIN T_INTEZMENYADATOK ia ON ia.C_TANEVID = fh.C_TANEVID AND ia.TOROLT = 'F' INNER JOIN T_INTEZMENY i ON ia.C_INTEZMENYID = i.ID AND i.TOROLT = 'F' INNER JOIN T_FELADATELLATASIHELY fhely ON fhely.C_TANEVID = ia.C_TANEVID AND fhely.TOROLT = 'F' INNER JOIN T_MUKODESIHELY mhely ON mhely.ID = fhely.C_MUKODESIHELYID AND mhely.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE fhelytip ON fhelytip.ID = fhely.C_OKTATASINEVELESIFELADATTIPUS AND fhelytip.C_TANEVID = fhely.C_TANEVID AND fhelytip.C_INTEZMENYID = i.ID AND fhelytip.TOROLT = 'F' INNER JOIN T_MUNKAUGYIADATOK ma ON ma.C_ALKALMAZOTTID = fh.ID AND ma.TOROLT = 'F' AND ma.C_FELADATELLATASIHELYID = fhely.ID INNER JOIN T_MUNKAKORTIPUS mt on mt.ID = ma.C_MUNKAKORTIPUSA AND mt.C_ALTANEVID = ma.C_TANEVID AND mt.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE munkaviszony ON munkaviszony.ID = ma.C_FOGLALKOZTATASTIPUS AND munkaviszony.C_TANEVID = ma.C_TANEVID AND munkaviszony.C_INTEZMENYID = ma.C_INTEZMENYID AND munkaviszony.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE nem ON fh.C_NEME = nem.ID AND nem.C_TANEVID = fh.C_TANEVID AND nem.C_INTEZMENYID = fh.C_INTEZMENYID AND nem.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE munkakor ON munkakor.ID = ma.C_MUNKAKORTIPUSA AND munkakor.C_TANEVID = ma.C_TANEVID AND munkakor.C_INTEZMENYID = ma.C_INTEZMENYID AND munkakor.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE fokozat ON fokozat.ID = ma.C_BESOROLASIFOKOZAT AND fokozat.C_TANEVID = ma.C_TANEVID AND fokozat.C_INTEZMENYID = ma.C_INTEZMENYID AND fokozat.TOROLT = 'F' OUTER APPLY ( SELECT pvt.C_TANARID, [1] AS Targykat1, [2] AS Targykat2, [3] AS Targykat3 FROM ( SELECT x.C_TANARID, x.C_NAME, RN FROM ( SELECT fg.C_TANARID, dib.ID, dib.C_NAME, ROW_NUMBER() OVER(PARTITION BY fg.C_TANARID ORDER BY SUM(fg.C_ORASZAM) DESC, dib.C_NAME ASC) AS RN FROM T_FOGLALKOZAS fg INNER JOIN T_TANTARGY tgy ON tgy.ID = fg.C_TANTARGYID AND tgy.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE dib ON tgy.C_TARGYKATEGORIA = dib.ID AND dib.C_TANEVID = tgy.C_TANEVID AND dib.TOROLT = 'F' WHERE fg.C_TANARID = fh.ID AND fg.C_TANEVID = @pTanevId AND fg.TOROLT = 'F' GROUP BY fg.C_TANARID, dib.ID, dib.C_NAME ) x WHERE x.RN <= 3 ) z PIVOT ( MAX(z.C_NAME) FOR RN IN ([1], [2], [3]) ) AS pvt ) targykat OUTER APPLY ( SELECT TOP(1) tta.C_TANTERVIJELLEMZOID, tantervijellemzoNev.C_NAME FROM T_FOGLALKOZAS f INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = f.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.TOROLT = 'F' INNER JOIN T_TANULOCSOPORT tcsOszt ON tcsOszt.C_TANULOID = tcs.C_TANULOID AND tcsOszt.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT ocsOszt ON ocsOszt.ID = tcsOszt.C_OSZTALYCSOPORTID AND ocsOszt.C_FELADATKATEGORIAID = ocs.C_FELADATKATEGORIAID AND ocsOszt.TOROLT = 'F' INNER JOIN T_OSZTALY oOszt ON ocsOszt.ID = oOszt.ID AND oOszt.TOROLT = 'F' INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcsOszt.ID AND tta.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE tantervijellemzoNev ON tantervijellemzoNev.ID = tta.C_TANTERVIJELLEMZOID AND tantervijellemzoNev.C_TANEVID = fh.C_TANEVID AND tantervijellemzoNev.C_INTEZMENYID = tta.C_INTEZMENYID AND tantervijellemzoNev.TOROLT = 'F' WHERE tcs.C_BELEPESDATUM <= @datum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @datum) AND tcsOszt.C_BELEPESDATUM <= @datum AND (tcsOszt.C_KILEPESDATUM IS NULL OR tcsOszt.C_KILEPESDATUM > @datum) AND f.C_TANARID = fh.ID AND ocs.C_FELADATELLATASIHELYID = ma.C_FELADATELLATASIHELYID AND f.C_TANEVID = @pTanevId AND f.TOROLT = 'F' GROUP BY tta.C_TANTERVIJELLEMZOID, tantervijellemzoNev.C_NAME ORDER BY COUNT(*) DESC, tta.C_TANTERVIJELLEMZOID ) AS tantervijellemzo OUTER APPLY ( SELECT TOP (1) vd.C_NAME FROM T_VEGZETTSEG v INNER JOIN T_DICTIONARYITEMBASE vd ON vd.ID = v.C_VEGZETTSEGTIPUSID AND vd.C_TANEVID = v.C_TANEVID AND vd.C_INTEZMENYID = v.C_INTEZMENYID AND vd.TOROLT = 'F' WHERE v.TOROLT = 'F' AND v.C_TANARID = fh.ID ORDER BY vd.C_VALUE ) vegzettseg LEFT JOIN T_DICTIONARYITEMBASE vezetoi ON vezetoi.ID = ma.C_VEZETOIORASZAMOK AND ma.C_TANEVID = vezetoi.C_TANEVID WHERE fh.TOROLT = 'F' AND (ma.C_ALKALMAZASMEGSZUNESE >= @datum OR ma.C_ALKALMAZASMEGSZUNESE IS NULL) AND ISNULL(fh.C_ELOTAG,'') NOT LIKE '[[]%' AND a.C_ALLANDOHELYETTESITESRE = 'F' AND mt.C_ALKALMAZOTTMUNKAKORTIPUSID = 8384 AND fh.C_TANEVID = @pTanevId AND fh.C_INTEZMENYID = @pIntezmenyid END GO