﻿DROP PROCEDURE IF EXISTS uspGetOsztalyTanuloinakSzamaKepzesiJellemzokSzerint
GO

CREATE PROCEDURE uspGetOsztalyTanuloinakSzamaKepzesiJellemzokSzerint
   @pTanevId int
  ,@pIntezmenyId int
  ,@pOsztalyId int
  ,@pIsAktivTanev bit

AS BEGIN
  SET NOCOUNT ON;
  DECLARE 
   @ujSzkt int
  ,@okj int
  ,@nkt int
  ,@ures int
  ,@reszszakma int


  SET @reszszakma =
      (SELECT
        --RESZSZAKMA
      COUNT(tta.ID)
      FROM  T_TANULOCSOPORT_OSSZES tcs
        INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON  tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F'
      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)

    SET @ujSzkt =
      (SELECT
        --UJSZKT
      COUNT(tta.ID)
      FROM  T_TANULOCSOPORT_OSSZES tcs
        INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON  tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F'
      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)

      SET @okj =  
        (SELECT
        --OKJ
          COUNT(tta.ID)
        FROM  T_TANULOCSOPORT_OSSZES tcs
          INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON  tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F'
        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)

       SET @nkt =  
         (SELECT
          --NKT
            COUNT(tta.ID)
          FROM  T_TANULOCSOPORT_OSSZES tcs
            INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON  tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F'
          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)

      SET @ures =  
         (SELECT
          /*Üres ha minden képzési jellemző adat null vagy Na*/
            COUNT(tta.ID)
          FROM  T_TANULOCSOPORT_OSSZES tcs
            INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON  tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F'
          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 (tta.C_AGAZATUJSZKTTIPUSID IS NULL OR tta.C_AGAZATUJSZKTTIPUSID = 7920)
            AND (tta.C_SZAKMATIPUSID IS NULL OR tta.C_SZAKMATIPUSID = 7946)
            AND (tta.C_SZAKMAIRANYTIPUSID IS NULL OR tta.C_SZAKMAIRANYTIPUSID = 8122)
            AND (tta.C_SZAKMACSOPORTID IS NULL OR tta.C_SZAKMACSOPORTID = 6084)
            AND (tta.C_AGAZATID IS NULL OR tta.C_AGAZATID = 5484)
            AND (tta.C_SZAKKEPESITESID IS NULL OR tta.C_SZAKKEPESITESID = 5527)
            AND (tta.C_RESZSZAKKEPESITESID IS NULL OR tta.C_RESZSZAKKEPESITESID = 6108)
            AND (tta.C_SZAKIRANYNKTTIPUSID IS NULL OR tta.C_SZAKIRANYNKTTIPUSID = 8493)
            AND (tta.C_SZAKKEPESITESNKTTIPUSID IS NULL OR tta.C_SZAKKEPESITESNKTTIPUSID = 8464)
            AND (tta.C_TANULMANYITERULETNKTTIPUSID IS NULL OR tta.C_TANULMANYITERULETNKTTIPUSID = 8459)
            AND (tta.C_AGAZATUJSZKTTIPUSID IS NULL OR tta.C_AGAZATUJSZKTTIPUSID = 7920)
            AND (tta.C_AGAZATRESZSZAKMATIPUSID IS NULL OR tta.C_AGAZATRESZSZAKMATIPUSID = 8832)
            AND (tta.C_SZAKMARESZSZAKMATIPUSID IS NULL OR tta.C_AGAZATRESZSZAKMATIPUSID = 8850)
            AND (tta.C_RESZSZAKMATIPUSID IS NULL OR tta.C_AGAZATRESZSZAKMATIPUSID = 8895)
            AND tcs.TOROLT = 'F'
            AND tcs.C_TANEVID = @pTanevId
            AND tcs.C_INTEZMENYID = @pIntezmenyId)

SELECT
   @ujSzkt SzktCount
  ,@okj OkjCount
  ,@nkt NktCount
  ,@ures UresCount
  ,@reszszakma ReszszakmaCount
END
GO
