DROP PROCEDURE IF EXISTS uspSzirStatTanuloEvVege GO CREATE PROCEDURE uspSzirStatTanuloEvVege @pElozoTanevId int ,@pIntezmenyId int AS BEGIN DECLARE @IsSniKezelo bit SET @IsSniKezelo = dbo.fnGetRendszerbeallitasEnumBool(1666, @pIntezmenyId, @pElozoTanevId) SELECT fh.ID AS TanuloId ,CONCAT(fh.C_NYOMTATASINEV, ' (', fh.C_OKTATASIAZONOSITO ,')') AS TanuloNev ,ia.C_OMKOD AS IntezmenyOmAzonosito ,ia.C_NEV AS IntezmenyNev ,ia.C_VAROS AS IntezmenyTelepules ,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 ,ISNULL(jogviszony.C_NAME, '-') AS TanuloJogviszony ,nem.C_NAME AS TanuloNem ,ISNULL(besorolas.TANTEVIJELLEMZO, '-') AS TanuloTanterviJellemzo ,LTRIM(RTRIM(REPLACE(ISNULL(besorolas.MUNKAREND, '-'), '(*)', ''))) AS TanuloMunkarend ,ISNULL(NULLIF(NULLIF(besorolas.C_EVFOLYAMTIPUSA, ''), 'Na'), '-') AS TanuloEvfolyam ,ISNULL(besorolas.C_AGAZAT, '-') AS TanuloAgazat ,IIF(PATINDEX ( '% - [1234567890]%' , COALESCE(NULLIF(besorolas.SZKT, 'na'), NULLIF(besorolas.NKT, 'na'), NULLIF(besorolas.OKJ, 'na'), '-') ) = 0, '-', SUBSTRING(COALESCE(NULLIF(besorolas.SZKT, 'na'), NULLIF(besorolas.NKT, 'na'), NULLIF(besorolas.OKJ, 'na'), '-'), PATINDEX ( '% - [1234567890]%' , COALESCE(NULLIF(besorolas.SZKT, 'na'), NULLIF(besorolas.NKT, 'na'), NULLIF(besorolas.OKJ, 'na'), '-') ) + 3, 100)) AS TanuloSzakkepesitesAzon ,IIF(PATINDEX ( '% - [1234567890]%' , COALESCE(NULLIF(besorolas.SZKT, 'na'), NULLIF(besorolas.NKT, 'na'), NULLIF(besorolas.OKJ, 'na'), '-') ) = 0, COALESCE(NULLIF(besorolas.SZKT, 'na'), NULLIF(besorolas.NKT, 'na'), NULLIF(besorolas.OKJ, 'na'), '-'), LEFT(COALESCE(NULLIF(besorolas.SZKT, 'na'), NULLIF(besorolas.NKT, 'na'), NULLIF(besorolas.OKJ, 'na'), '-'), PATINDEX ( '% - [1234567890]%' , COALESCE(NULLIF(besorolas.SZKT, 'na'), NULLIF(besorolas.NKT, 'na'), NULLIF(besorolas.OKJ, 'na'), '-') ))) AS TanuloSzakkepesitesNev ,allampolg.C_NAME AS TanuloAllampolgarsag ,ISNULL(IIF(fh.C_ALLAMPOLGARSAGA = fh.C_ALLAMPOLGARSAGA2, '-', allampolg2.C_NAME), '-') AS TanuloAllampolgarsag2 ,IIF(@IsSniKezelo = 1, IIF(dk.C_SAJATOSNEVELESU = 'T', 'Igen', 'Nem'), '-') AS TanuloSni ,IIF(@IsSniKezelo = 1, IIF(besorolas.C_ISGYOGYPEDAGOGIAILOGOPEDIAI = 'T' AND dk.C_SAJATOSNEVELESU = 'T', 'Igen', 'Nem'), '-') AS TanuloSniGyogypedNevelt ,IIF(@IsSniKezelo = 1 AND dk.C_SAJATOSNEVELESU = 'T', IIF(integralt.INTEGRALT = 'T', 'Igen', 'Nem'), '-') AS TanuloSniIntegraltanNevelt ,IIF(dk.C_HATRANYOSHELYZETU IS NULL OR dk.C_HATRANYOSHELYZETU IN (1120, 1121), 'Nem', 'Igen') AS TanuloHatranyosHelyzet ,CASE ISNULL(szst.C_ISSIKERESTANULMANYOK, elozo_szst.C_ISSIKERESTANULMANYOK) WHEN 'T' THEN 'Igen' WHEN 'F' THEN 'Nem' ELSE IIF(fhely.C_OKTATASINEVELESIFELADATTIPUS IN (1165, 7767), '-', 'Nem') END AS TanuloSikeresTanulmanyok ,CASE szst.C_ISSIKERESSZAKMAIVISZGASZAK1 WHEN 'T' THEN 'Igen' WHEN 'F' THEN 'Nem' ELSE IIF(fhely.C_OKTATASINEVELESIFELADATTIPUS IN (1165, 7767), '-', 'Nem') END AS TanuloSikeresSzakmaiVizsgaSzak1 ,CASE szst.C_ISSIKERESSZAKMAIVISZGASZAK2 WHEN 'T' THEN 'Igen' WHEN 'F' THEN 'Nem' ELSE IIF(fhely.C_OKTATASINEVELESIFELADATTIPUS IN (1165, 7767), '-', 'Nem') END AS TanuloSikeresSzakmaiVizsgaSzak2 ,CASE szst.C_ISSIKERESSZAKMAIVISZGASZAK3 WHEN 'T' THEN 'Igen' WHEN 'F' THEN 'Nem' ELSE IIF(fhely.C_OKTATASINEVELESIFELADATTIPUS IN (1165, 7767), '-', 'Nem') END AS TanuloSikeresSzakmaiVizsgaSzak3 ,CASE ISNULL(szst.C_ISSIKERESAGAZATIALAPVIZSGA, elozo_szst.C_ISSIKERESAGAZATIALAPVIZSGA) WHEN 'T' THEN 'Igen' WHEN 'F' THEN 'Nem' ELSE IIF(fhely.C_OKTATASINEVELESIFELADATTIPUS IN (1165, 7767), '-', 'Nem') END AS TanuloSikeresAgazatiVizsga FROM T_FELHASZNALO_OSSZES fh INNER JOIN T_TANULO_OSSZES dk ON dk.ID = fh.ID AND dk.TOROLT = 'F' INNER JOIN T_INTEZMENYADATOK_OSSZES 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_OSSZES fhely ON fhely.C_TANEVID = ia.C_TANEVID AND fhely.TOROLT = 'F' INNER JOIN T_MUKODESIHELY_OSSZES mhely ON mhely.ID = fhely.C_MUKODESIHELYID AND mhely.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES fhelytip ON fhelytip.ID = fhely.C_OKTATASINEVELESIFELADATTIPUS AND fhelytip.C_TANEVID = fhely.C_TANEVID AND fhelytip.C_INTEZMENYID = fhely.C_INTEZMENYID AND fhelytip.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES 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' CROSS APPLY ( SELECT TOP(1) ocs.ID AS C_OSZTALYID, tcs.C_BELEPESDATUM, tcs.C_KILEPESDATUM ,ISNULL(dk.C_JOGVISZONYTIPUSID, tcs.C_JOGVISZONYTIPUSID) AS C_JOGVISZONYTIPUSID ,tantevijellemzotta.C_NAME AS TANTEVIJELLEMZO ,IIF(ocs.C_KEPZESIFORMA = 1095, '-', munkarend.C_NAME) AS MUNKAREND ,IIF(ocs.C_EVFOLYAMTIPUSA = 7366, evfolyamTta.C_NAME, evfolyamOcs.C_NAME) AS C_EVFOLYAMTIPUSA ,COALESCE(NULLIF(agazatSzkt.C_NAME, 'na'), NULLIF(agazatSzktO.C_NAME, 'na'), NULLIF(agazatNkt.C_NAME, 'na'), NULLIF(agazatOkj.C_NAME, 'na'), NULLIF(agazatOkjO.C_NAME, 'na'), '-') AS C_AGAZAT ,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI ,ISNULL(szktTta.C_NAME, szktO.C_NAME) AS SZKT ,ISNULL(nktTta.C_NAME, nktO.C_NAME) AS NKT ,okj.C_NAME AS OKJ FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tantevijellemzotta ON tantevijellemzotta.ID = tta.C_TANTERVIJELLEMZOID AND tantevijellemzotta.C_TANEVID = tta.C_TANEVID AND tantevijellemzotta.C_INTEZMENYID = tta.C_INTEZMENYID AND tantevijellemzotta.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES munkarend ON munkarend.ID = ocs.C_KEPZESIFORMA AND munkarend.C_TANEVID = ocs.C_TANEVID AND munkarend.C_INTEZMENYID = ocs.C_INTEZMENYID AND munkarend.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamOcs ON evfolyamOcs.ID = ocs.C_EVFOLYAMTIPUSA AND evfolyamOcs.C_TANEVID = ocs.C_TANEVID AND evfolyamOcs.C_INTEZMENYID = ocs.C_INTEZMENYID AND evfolyamOcs.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES evfolyamTta ON evfolyamTta.ID = tta.C_TANULOEVFOLYAMTIPUSID AND evfolyamTta.C_TANEVID = tta.C_TANEVID AND evfolyamTta.C_INTEZMENYID = tta.C_INTEZMENYID AND evfolyamTta.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES agazatOkj ON agazatOkj.ID = tta.C_AGAZATID AND agazatOkj.C_TANEVID = tta.C_TANEVID AND agazatOkj.C_INTEZMENYID = tta.C_INTEZMENYID AND agazatOkj.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES agazatNkt ON agazatNkt.ID = tta.C_TANULMANYITERULETNKTTIPUSID AND agazatNkt.C_TANEVID = tta.C_TANEVID AND agazatNkt.C_INTEZMENYID = tta.C_INTEZMENYID AND agazatNkt.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES agazatSzkt ON agazatSzkt.ID = tta.C_AGAZATUJSZKTTIPUSID AND agazatSzkt.C_TANEVID = tta.C_TANEVID AND agazatSzkt.C_INTEZMENYID = tta.C_INTEZMENYID AND agazatSzkt.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES agazatOkjO ON agazatOkjO.ID = o.C_AGAZAT AND agazatOkjO.C_TANEVID = o.C_ALTANEVID AND agazatOkjO.C_INTEZMENYID = o.C_ALINTEZMENYID AND agazatOkjO.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES agazatSzktO ON agazatSzktO.ID = o.C_AGAZATUJSZKTTIPUSID AND agazatSzktO.C_TANEVID = o.C_ALTANEVID AND agazatSzktO.C_INTEZMENYID = o.C_ALINTEZMENYID AND agazatSzktO.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szktTta ON szktTta.ID = tta.C_SZAKMATIPUSID AND szktTta.C_TANEVID = tta.C_TANEVID AND szktTta.C_INTEZMENYID = tta.C_INTEZMENYID AND szktTta.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szktO ON szktO.ID = o.C_SZAKMATIPUSID AND szktO.C_TANEVID = o.C_ALTANEVID AND szktO.C_INTEZMENYID = o.C_ALINTEZMENYID AND szktO.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES nktTta ON nktTta.ID = tta.C_SZAKKEPESITESNKTTIPUSID AND nktTta.C_TANEVID = tta.C_TANEVID AND nktTta.C_INTEZMENYID = tta.C_INTEZMENYID AND nktTta.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES nktO ON nktO.ID = o.C_SZAKKEPESITESNKTTIPUSID AND nktO.C_TANEVID = o.C_ALTANEVID AND nktO.C_INTEZMENYID = o.C_ALINTEZMENYID AND nktO.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES okj ON okj.ID = tta.C_SZAKKEPESITESID AND okj.C_TANEVID = tta.C_TANEVID AND okj.C_INTEZMENYID = tta.C_INTEZMENYID AND okj.TOROLT = 'F' WHERE tcs.C_TANULOID = fh.ID AND fhely.ID = ocs.C_FELADATELLATASIHELYID AND tcs.TOROLT = 'F' AND tcs.C_TANEVID = fh.C_TANEVID ORDER BY tcs.C_BELEPESDATUM DESC ) besorolas LEFT JOIN T_DICTIONARYITEMBASE_OSSZES jogviszony ON jogviszony.ID = besorolas.C_JOGVISZONYTIPUSID AND jogviszony.C_TANEVID = dk.C_ALTANEVID AND jogviszony.C_INTEZMENYID = dk.C_ALINTEZMENYID AND jogviszony.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES allampolg ON allampolg.ID = fh.C_ALLAMPOLGARSAGA AND allampolg.C_TANEVID = dk.C_ALTANEVID AND allampolg.C_INTEZMENYID = dk.C_ALINTEZMENYID AND allampolg.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE_OSSZES allampolg2 ON allampolg2.ID = fh.C_ALLAMPOLGARSAGA2 AND allampolg2.C_TANEVID = dk.C_ALTANEVID AND allampolg2.C_INTEZMENYID = dk.C_ALINTEZMENYID AND allampolg2.TOROLT = 'F' LEFT JOIN T_TANULOSNI_OSSZES sni ON sni.C_TANULOID = dk.ID AND sni.TOROLT = 'F' LEFT JOIN T_SZIRSTATTANULO_OSSZES szst ON szst.C_TANULOID = dk.ID AND szst.C_FELADATELLATASIHELYID = fhely.ID AND szst.TOROLT = 'F' AND szst.C_TANEVID = fh.C_TANEVID AND szst.TOROLT = 'F' OUTER APPLY ( SELECT TOP(1) 'T' AS INTEGRALT FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULO_OSSZES dk2 ON dk2.ID = tcs.C_TANULOID AND dk2.TOROLT = 'F' WHERE tcs.C_OSZTALYCSOPORTID = besorolas.C_OSZTALYID AND tcs.C_KILEPESDATUM > besorolas.C_BELEPESDATUM /* NULL vizsgálat nem kell, mert elozo tanévben ki van sorolva az összes diák*/ AND tcs.C_BELEPESDATUM < besorolas.C_KILEPESDATUM AND dk2.C_SAJATOSNEVELESU = 'F' AND tcs.TOROLT = 'F' AND @IsSniKezelo = 1 ) integralt OUTER APPLY ( SELECT TOP 1 * FROM ( SELECT tcs.C_BELEPESDATUM, tcs.ID, CASE WHEN COUNT(tcs.ID) OVER(PARTITION BY tcs.C_TANULOID) = 1 THEN 1 WHEN tcs.C_BELEPESDATUM <= CAST(LEFT(v.C_NEV, 4) + '-10-01' AS DATE) AND ISNULL(tcs.C_KILEPESDATUM, '2999-01-01') > CAST(LEFT(v.C_NEV, 4) + '-10-01' AS DATE) THEN 2 ELSE 3 END AS row_order, IIF(ISNULL(tta.C_EVISMETLO, t.C_EVISMETLO) = 'T', 'F', 'T') AS C_ISSIKERESTANULMANYOK, ISNULL(IIF(tta.C_AGAZATALAPVIZSGAEREDTIPUSID = 8996, 'T', NULL), IIF(t.C_AGAZATIALAPVIZSGAEREDMENYE < 2.0, 'F', NULL)) AS C_ISSIKERESAGAZATIALAPVIZSGA FROM T_FELHASZNALO_OSSZES f INNER JOIN T_TANEV_OSSZES v on v.ID = f.C_TANEVID AND v.TOROLT = 'F' INNER JOIN T_TANULO_OSSZES t ON t.ID = f.ID AND t.TOROLT = 'F' INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = f.ID AND tcs.TOROLT = 'F' INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F' WHERE f.TOROLT = 'F' AND f.ELOZOTANEVIREKORDID = fh.ID ) sz ORDER BY sz.row_order, sz.C_BELEPESDATUM DESC, sz.ID DESC ) elozo_szst WHERE fh.TOROLT = 'F' AND fh.C_TANEVID = @pElozoTanevId AND fh.C_INTEZMENYID = @pIntezmenyId END GO