﻿DROP PROCEDURE IF EXISTS uspGetOsztalyCsoportokLetszama
GO

CREATE PROCEDURE uspGetOsztalyCsoportokLetszama
    @pIntezmenyId INT
   ,@pTanevId INT

AS BEGIN
  SET NOCOUNT ON

  DECLARE @sql NVARCHAR(2000)

  SET @sql = N'
    SELECT osztalyCsoport.ID ID
       ,osztalyCsoport.C_NEV Nev
       ,osztalyCsoport.C_EVFOLYAMTIPUSA Evfolyam
       ,IIF(csoport.ID IS NOT NULL, ''Csoport'', ''Osztály'') Tipus
       ,csoport.C_TIPUSA CsoportTipus
       ,osztalybontas.C_Nev Osztalybontas
       ,COUNT(tanuloCsoport.ID) TanulokSzama
    FROM T_OSZTALYCSOPORT_OSSZES osztalyCsoport
      LEFT JOIN T_CSOPORT_OSSZES csoport
        ON  csoport.ID = osztalyCsoport.ID AND csoport.TOROLT = ''F''
      LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalybontas
        ON  osztalybontas.ID = csoport.C_OSZTALYBONTASID AND osztalybontas.TOROLT = ''F''
      LEFT JOIN T_OSZTALY_OSSZES osztaly
        ON  osztaly.ID = osztalyCsoport.ID AND osztaly.TOROLT = ''F''
      LEFT JOIN T_TANULOCSOPORT_OSSZES tanuloCsoport
        ON  tanuloCsoport.C_OSZTALYCSOPORTID = osztalyCsoport.ID
            AND tanuloCsoport.TOROLT = ''F''
            AND tanuloCsoport.C_BELEPESDATUM <= GETDATE()
            AND (tanuloCsoport.C_KILEPESDATUM IS NULL OR tanuloCsoport.C_KILEPESDATUM >= GETDATE())
    WHERE
        osztalyCsoport.TOROLT = ''F''
        AND osztalyCsoport.C_INTEZMENYID = @pIntezmenyId
        AND osztalyCsoport.C_TANEVID = @pTanevId
    GROUP BY
        osztalyCsoport.ID,
        csoport.ID,
        osztalyCsoport.C_NEV,
        osztalyCsoport.C_EVFOLYAMTIPUSA,
        csoport.C_TIPUSA,
        csoport.C_OSZTALYBONTASID,
        osztalybontas.C_NEV'

  EXEC sys.Sp_executesql @sql, N'
     @pIntezmenyId int
    ,@pTanevId int'
    ,@pIntezmenyId 
    ,@pTanevId 

END
GO
