kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetOsztalyTanuloinakKepzesiJellemzoi.sql
2024-03-13 00:33:46 +01:00

167 lines
8.9 KiB
Transact-SQL

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