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

44 lines
1.6 KiB
Transact-SQL

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