DROP PROCEDURE IF EXISTS uspGetOsztalyTanuloinakKepzesiJellemzoi GO CREATE PROCEDURE uspGetOsztalyTanuloinakKepzesiJellemzoi @pTanevId int ,@pIntezmenyId int ,@pOsztalyId int ,@pJegyzekTipus int ,@pIsAktivTanev bit AS BEGIN SET NOCOUNT ON; IF @pJegyzekTipus = 1 BEGIN SELECT --UJSZKT C_OSZTALYCSOPORTID OsztalyId ,C_AGAZATUJSZKTTIPUSID AgazatUjSzktTipusId ,agazatDict.C_NAME AgazatUjSzktTipus ,C_SZAKMATIPUSID SzakmaTipusId ,szakmaTipusDict.C_NAME SzakmaTipus ,C_SZAKMAIRANYTIPUSID SzakmairanyTipusId ,szakmairanyTipusDict.C_NAME SzakmairanyTipus ,COUNT(C_OSZTALYCSOPORTID) Letszam ,@pJegyzekTipus JegyzekTipus FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES agazatDict ON agazatDict.ID = tta.C_AGAZATUJSZKTTIPUSID and agazatDict.TOROLT = 'F' AND agazatDict.C_TANEVID = @pTanevId INNER JOIN T_DICTIONARYITEMBASE_OSSZES szakmaTipusDict ON szakmaTipusDict.ID = tta.C_SZAKMATIPUSID and szakmaTipusDict.TOROLT = 'F' AND szakmaTipusDict.C_TANEVID = @pTanevId INNER JOIN T_DICTIONARYITEMBASE_OSSZES szakmairanyTipusDict ON szakmairanyTipusDict.ID = tta.C_SZAKMAIRANYTIPUSID and szakmairanyTipusDict.TOROLT = 'F' AND szakmairanyTipusDict.C_TANEVID = @pTanevId WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId AND (@pIsAktivTanev = 0 OR tcs.C_BELEPESDATUM <= GETDATE()) AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE()) AND (COALESCE (tta.C_AGAZATUJSZKTTIPUSID, tta.C_SZAKMATIPUSID, tta.C_SZAKMAIRANYTIPUSID) IS NOT NULL AND (tta.C_AGAZATUJSZKTTIPUSID <> 7920 OR tta.C_SZAKMATIPUSID <> 7946 OR tta.C_SZAKMAIRANYTIPUSID <> 8122) ) /*Ha bármelyik nem null vagy nem Na*/ AND tcs.TOROLT = 'F' AND tcs.C_TANEVID = @pTanevId AND tcs.C_INTEZMENYID = @pIntezmenyId GROUP BY C_OSZTALYCSOPORTID ,C_AGAZATUJSZKTTIPUSID ,agazatDict.C_NAME ,C_SZAKMATIPUSID ,szakmaTipusDict.C_NAME ,C_SZAKMAIRANYTIPUSID ,szakmairanyTipusDict.C_NAME END IF @pJegyzekTipus = 2 BEGIN SELECT --OKJ C_OSZTALYCSOPORTID OsztalyId ,C_SZAKMACSOPORTID SzakmacsoportId ,SzakmacsoportDict.C_NAME Szakmacsoport ,C_AGAZATID AgazatId ,agazatDict.C_NAME Agazat ,C_SZAKKEPESITESID SzakkepesitesId ,SzakkepesitesDict.C_NAME Szakkepesites ,C_RESZSZAKKEPESITESID ReszszakkepesitesId ,ReszszakkepesitesDict.C_NAME Reszszakkepesites ,COUNT(C_OSZTALYCSOPORTID) Letszam ,@pJegyzekTipus JegyzekTipus FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES szakmacsoportDict ON szakmacsoportDict.ID = tta.C_SZAKMACSOPORTID and szakmacsoportDict.TOROLT = 'F' AND szakmacsoportDict.C_TANEVID = @pTanevId INNER JOIN T_DICTIONARYITEMBASE_OSSZES agazatDict ON agazatDict.ID = tta.C_AGAZATID and agazatDict.TOROLT = 'F' AND agazatDict.C_TANEVID = @pTanevId INNER JOIN T_DICTIONARYITEMBASE_OSSZES szakkepesitesDict ON szakkepesitesDict.ID = tta.C_SZAKKEPESITESID and szakkepesitesDict.TOROLT = 'F' AND szakkepesitesDict.C_TANEVID = @pTanevId INNER JOIN T_DICTIONARYITEMBASE_OSSZES reszszakkepesitesDict ON reszszakkepesitesDict.ID = tta.C_RESZSZAKKEPESITESID and reszszakkepesitesDict.TOROLT = 'F' AND reszszakkepesitesDict.C_TANEVID = @pTanevId WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId AND (@pIsAktivTanev = 0 OR tcs.C_BELEPESDATUM <= GETDATE()) AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE()) AND (COALESCE (tta.C_SZAKMACSOPORTID,tta.C_AGAZATID, tta.C_SZAKKEPESITESID, tta.C_RESZSZAKKEPESITESID) IS NOT NULL AND (tta.C_SZAKMACSOPORTID <> 6084 OR tta.C_AGAZATID <> 5484 OR tta.C_SZAKKEPESITESID <> 5527 OR tta.C_RESZSZAKKEPESITESID <> 6108) ) /*Ha bármelyik nem null vagy nem Na*/ AND tcs.TOROLT = 'F' AND tcs.C_TANEVID = @pTanevId AND tcs.C_INTEZMENYID = @pIntezmenyId GROUP BY C_OSZTALYCSOPORTID ,C_SZAKMACSOPORTID ,SzakmacsoportDict.C_NAME ,C_AGAZATID ,agazatDict.C_NAME ,C_SZAKKEPESITESID ,SzakkepesitesDict.C_NAME ,C_RESZSZAKKEPESITESID ,ReszszakkepesitesDict.C_NAME END IF @pJegyzekTipus = 3 BEGIN SELECT --NKT C_OSZTALYCSOPORTID OsztalyId ,C_SZAKIRANYNKTTIPUSID SzakiranyNktTipusId ,szakiranyNktTipusDict.C_NAME SzakiranyNktTipus ,C_SZAKKEPESITESNKTTIPUSID SzakkepesitesNktTipusId ,szakkepesitesNktDict.C_NAME SzakkepesitesNktTipus ,C_TANULMANYITERULETNKTTIPUSID TanulmanyiTeruletNktTipusId ,tanulmanyiTeruletNktTipusDict.C_NAME TanulmanyiTeruletNktTipus ,COUNT(C_OSZTALYCSOPORTID) Letszam ,@pJegyzekTipus JegyzekTipus FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES szakiranyNktTipusDict ON szakiranyNktTipusDict.ID = tta.C_SZAKIRANYNKTTIPUSID and szakiranyNktTipusDict.TOROLT = 'F' AND szakiranyNktTipusDict.C_TANEVID = @pTanevId INNER JOIN T_DICTIONARYITEMBASE_OSSZES szakkepesitesNktDict ON szakkepesitesNktDict.ID = tta.C_SZAKKEPESITESNKTTIPUSID and szakkepesitesNktDict.TOROLT = 'F' AND szakkepesitesNktDict.C_TANEVID = @pTanevId INNER JOIN T_DICTIONARYITEMBASE_OSSZES tanulmanyiTeruletNktTipusDict ON tanulmanyiTeruletNktTipusDict.ID = tta.C_TANULMANYITERULETNKTTIPUSID and tanulmanyiTeruletNktTipusDict.TOROLT = 'F' AND tanulmanyiTeruletNktTipusDict.C_TANEVID = @pTanevId WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId AND (@pIsAktivTanev = 0 OR tcs.C_BELEPESDATUM <= GETDATE()) AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE()) AND (COALESCE (tta.C_SZAKIRANYNKTTIPUSID,tta.C_SZAKKEPESITESNKTTIPUSID, tta.C_TANULMANYITERULETNKTTIPUSID) IS NOT NULL AND (tta.C_SZAKIRANYNKTTIPUSID <> 8493 OR tta.C_SZAKKEPESITESNKTTIPUSID <> 8464 OR tta.C_TANULMANYITERULETNKTTIPUSID <> 8459) ) /*Ha bármelyik nem null vagy nem Na*/ AND tcs.TOROLT = 'F' AND tcs.C_TANEVID = @pTanevId AND tcs.C_INTEZMENYID = @pIntezmenyId GROUP BY C_OSZTALYCSOPORTID ,C_SZAKIRANYNKTTIPUSID ,szakiranyNktTipusDict.C_NAME ,C_SZAKKEPESITESNKTTIPUSID ,szakkepesitesNktDict.C_NAME ,C_TANULMANYITERULETNKTTIPUSID ,tanulmanyiTeruletNktTipusDict.C_NAME END IF @pJegyzekTipus = 4 BEGIN SELECT --RESZSZAKMA C_OSZTALYCSOPORTID OsztalyId ,C_AGAZATRESZSZAKMATIPUSID AgazatReszSzakmaTipusId ,agazatReszSzakmaDict.C_NAME AgazatReszSzakmaTipus ,C_SZAKMARESZSZAKMATIPUSID SzakmaReszSzakmaTipusId ,szakmaReszSzakmaDict.C_NAME SzakmaReszSzakmaTipus ,C_RESZSZAKMATIPUSID ReszSzakmaTipusId ,reszSzakmaDict.C_NAME ReszSzakmaTipus ,COUNT(C_OSZTALYCSOPORTID) Letszam ,@pJegyzekTipus JegyzekTipus FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES agazatReszSzakmaDict ON agazatReszSzakmaDict.ID = tta.C_AGAZATRESZSZAKMATIPUSID and agazatReszSzakmaDict.TOROLT = 'F' AND agazatReszSzakmaDict.C_TANEVID = @pTanevId INNER JOIN T_DICTIONARYITEMBASE_OSSZES szakmaReszSzakmaDict ON szakmaReszSzakmaDict.ID = tta.C_SZAKMARESZSZAKMATIPUSID and szakmaReszSzakmaDict.TOROLT = 'F' AND szakmaReszSzakmaDict.C_TANEVID = @pTanevId INNER JOIN T_DICTIONARYITEMBASE_OSSZES reszSzakmaDict ON reszSzakmaDict.ID = tta.C_RESZSZAKMATIPUSID and reszSzakmaDict.TOROLT = 'F' AND reszSzakmaDict.C_TANEVID = @pTanevId WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId AND (@pIsAktivTanev = 0 OR tcs.C_BELEPESDATUM <= GETDATE()) AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE()) AND (COALESCE (tta.C_AGAZATRESZSZAKMATIPUSID, tta.C_SZAKMARESZSZAKMATIPUSID, tta.C_RESZSZAKMATIPUSID) IS NOT NULL AND (tta.C_AGAZATRESZSZAKMATIPUSID <> 8832 OR tta.C_SZAKMARESZSZAKMATIPUSID <> 8850 OR tta.C_RESZSZAKMATIPUSID <> 8895) ) /*Ha bármelyik nem null vagy nem Na*/ AND tcs.TOROLT = 'F' AND tcs.C_TANEVID = @pTanevId AND tcs.C_INTEZMENYID = @pIntezmenyId GROUP BY C_OSZTALYCSOPORTID ,C_AGAZATRESZSZAKMATIPUSID ,agazatReszSzakmaDict.C_NAME ,C_SZAKMARESZSZAKMATIPUSID ,szakmaReszSzakmaDict.C_NAME ,C_RESZSZAKMATIPUSID ,reszSzakmaDict.C_NAME END END GO