-- ============================================= -- Description: -- ============================================= DROP PROCEDURE IF EXISTS uspGetTanulokSzamonkeresElorejelzesei GO CREATE PROCEDURE uspGetTanulokSzamonkeresElorejelzesei @IntezmenyId int ,@TanevId int ,@pDatum datetime ,@pOraGroupId int ,@pOsztalyCsoportId int ,@pNapiSzamonkeresLimit int ,@pErtekelesTipusokLimithez nvarchar(max) AS BEGIN CREATE TABLE #OsztalyCsoport (Id int PRIMARY KEY) INSERT INTO #OsztalyCsoport (Id) SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportokByDate (@pOsztalyCsoportId, @pDatum, @pDatum) CREATE TABLE #Tanulo (Id int PRIMARY KEY, Nev nvarchar(300)) INSERT INTO #Tanulo (Id,Nev) SELECT fh.ID, fh.C_NYOMTATASINEV FROM T_TANULOCSOPORT tcs INNER JOIN T_FELHASZNALO fh ON fh.ID = tcs.C_TANULOID AND fh.TOROLT = 'F' WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND (tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM > @pDatum OR tcs.C_KILEPESDATUM IS NULL)) CREATE TABLE #TanuloSzamonkeresei (Id int PRIMARY KEY, Nev nvarchar(300), SzamonkeresekSzama int) INSERT INTO #TanuloSzamonkeresei (Id,Nev,SzamonkeresekSzama) SELECT t.id,t.Nev, COUNT(1) as SzamonkeresekSzama FROM T_SZAMONKERESELOREJELZES szk INNER JOIN T_ORARENDIORA oo ON oo.C_ORARENDIORAGROUPID = szk.C_ORARENDIORAGROUPID AND szk.C_SZAMONKERESDATUMA >= oo.C_ORAERVENYESSEGKEZDETE AND szk.C_SZAMONKERESDATUMA < oo.C_ORAERVENYESSEGVEGE AND oo.TOROLT = 'F' INNER JOIN #OsztalyCsoport ocs ON ocs.Id = oo.C_OSZTALYCSOPORTID INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID INNER JOIN #Tanulo t ON t.id = tcs.C_TANULOID WHERE szk.C_SZAMONKERESDATUMA = @pDatum AND szk.C_SZAMONKERESTIPUSID IN (SELECT value FROM STRING_SPLIT(@pErtekelesTipusokLimithez ,',')) AND szk.C_INTEZMENYID = @IntezmenyId AND szk.C_TANEVID = @TanevId AND szk.TOROLT = 'F' GROUP BY t.id, t.Nev SELECT * FROM #TanuloSzamonkeresei WHERE SzamonkeresekSzama > @pNapiSzamonkeresLimit END GO