44 lines
1.6 KiB
Transact-SQL
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
|