DROP PROCEDURE IF EXISTS [dbo].[sp_TeremKapacitasTullepesVizsgalat] GO CREATE PROCEDURE [dbo].[sp_TeremKapacitasTullepesVizsgalat] @teremIdArray nvarchar(max), @tervezettKapacitas int AS BEGIN SET NOCOUNT ON; SELECT DISTINCT tanulok.ocsopId ,tanulok.letszam ,ocsop.C_NEV AS ocsopNev ,felh.C_NYOMTATASINEV AS tanarNev ,ISNULL(targy.C_ROVIDNEV, targy.C_NEV) TargyNev ,terem.C_NEV AS teremNev FROM T_ORARENDIORA AS orarendiora INNER JOIN T_OSZTALYCSOPORT AS ocsop ON orarendiora.C_OSZTALYCSOPORTID = ocsop.ID INNER JOIN T_FELHASZNALO AS felh ON orarendiora.C_TANARID = felh.ID INNER JOIN T_TANTARGY AS targy ON orarendiora.C_TANTARGYID = targy.ID INNER JOIN T_TEREM AS terem ON orarendiora.C_TEREMID = terem.ID LEFT JOIN( SELECT C_OSZTALYCSOPORTID AS ocsopId ,COUNT(1) AS letszam FROM T_TANULOCSOPORT JOIN T_TANEV tanev ON tanev.ID = T_TANULOCSOPORT.C_TANEVID AND tanev.C_INTEZMENYID = T_TANULOCSOPORT.C_INTEZMENYID WHERE T_TANULOCSOPORT.TOROLT = 'F' AND T_TANULOCSOPORT.C_BELEPESDATUM <= GETDATE() AND (T_TANULOCSOPORT.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT.C_KILEPESDATUM > GETDATE()) AND tanev.C_AKTIV = 'T' GROUP BY C_OSZTALYCSOPORTID ) tanulok ON tanulok.ocsopId = ocsop.ID WHERE orarendiora.C_ORAERVENYESSEGKEZDETE < GETDATE() AND orarendiora.C_ORAERVENYESSEGVEGE > GETDATE() AND orarendiora.C_TEREMID IN (SELECT value FROM STRING_SPLIT(@teremIdArray, ',')) AND tanulok.letszam > @tervezettKapacitas AND ocsop.TOROLT = 'F' AND orarendiora.TOROLT = 'F' AND felh.TOROLT = 'F' AND targy.TOROLT = 'F' AND terem.TOROLT = 'F' END GO