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

97 lines
3.7 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetAktivTanevValtasaModel
GO
CREATE PROCEDURE uspGetAktivTanevValtasaModel
@pTanevId INT
,@pIntezmenyId INT
,@pKovTanevId INT
,@pSzakgyakKezdoDatum DATETIME
,@pSzakgyakVegDatum DATETIME
,@pOsszefuggoSzakGyakTipus INT
,@pOktNevKatTipus INT
AS
BEGIN
SET NOCOUNT ON;
SELECT (
SELECT COUNT(1)
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
AND ocs.TOROLT = 'F'
AND ocs.C_FELADATKATEGORIAID = @pOktNevKatTipus
INNER JOIN T_OSZTALY_OSSZES osztaly ON tcs.C_OSZTALYCSOPORTID = osztaly.ID
AND tcs.C_TANEVID = osztaly.C_ALTANEVID AND osztaly.TOROLT ='F'
WHERE tcs.C_KILEPESDATUM IS NULL
AND tcs.TOROLT = 'F'
AND tcs.C_TANEVID = @pTanevId
) KiNemSoroltTanulokOsztaly
,(
SELECT COUNT(1)
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_CSOPORT_OSSZES csoport ON tcs.C_OSZTALYCSOPORTID = csoport.ID
AND tcs.C_TANEVID = csoport.C_ALTANEVID AND csoport.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON csoport.ID = ocs.ID
AND ocs.TOROLT = 'F'
AND ocs.C_FELADATKATEGORIAID = @pOktNevKatTipus
WHERE tcs.C_KILEPESDATUM IS NULL
AND tcs.TOROLT = 'F'
AND tcs.C_TANEVID = @pTanevId
) KiNemSoroltTanulokCsoport
,(
SELECT COUNT(1)
FROM T_NEBULO_OSSZES nebulo
WHERE nebulo.TOROLT = 'F'
AND nebulo.C_FELVETELSTATUSZA = 5401
AND 0 = (
SELECT COUNT(1)
FROM T_FELHASZNALO_OSSZES f
WHERE f.C_OKTATASIAZONOSITO = nebulo.C_OKTATASIAZONOSITOSZAMA
AND f.C_TANEVID <> nebulo.C_TANEVID AND f.TOROLT = 'F'
)
AND nebulo.C_TANEVID = @pTanevId
) BeNemSoroltNebulok
,(
SELECT COUNT(1)
FROM T_ALKALMAZOTT_OSSZES a
INNER JOIN T_TANEV_OSSZES t ON t.ID = @pKovTanevId
AND t.C_KOVETKEZO = 'T' AND t.TOROLT = 'F'
INNER JOIN T_MUNKAUGYIADATOK_OSSZES m ON m.C_ALKALMAZOTTID = a.ID AND m.TOROLT = 'F'
LEFT JOIN T_ORARENDIORA_OSSZES oo ON oo.C_TANARID = a.ID
AND oo.TOROLT = 'F'
LEFT JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = a.ID
AND f.TOROLT = 'F'
WHERE a.C_ALTANEVID = @pKovTanevId
AND C_ALKALMAZASMEGSZUNESE <= DATEADD(DAY, - 1, t.C_KEZDONAP)
AND oo.ID IS NULL
AND f.ID IS NULL
AND a.TOROLT = 'F'
) VanTorlendoAlkalmazott
,(
SELECT COUNT(1)
FROM T_FELHASZNALO_OSSZES tanulo
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tanulo.ID = tcs.C_TANULOID
AND tcs.TOROLT = 'F'
AND tcs.C_BELEPESDATUM < @pSzakgyakVegDatum
AND (
tcs.C_KILEPESDATUM > @pSzakgyakKezdoDatum
OR tcs.C_KILEPESDATUM IS NULL
)
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID
AND cs.C_TIPUSA = @pOsszefuggoSzakGyakTipus
AND cs.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON cs.ID = ocs.ID
AND ocs.TOROLT = 'F'
AND ocs.C_FELADATKATEGORIAID = @pOktNevKatTipus
LEFT JOIN T_OSSZEFUGGOSZAKGYAK_OSSZES szakgyak ON szakgyak.C_TANULOID = tanulo.ID
AND szakgyak.TOROLT = 'F'
WHERE tanulo.TOROLT = 'F'
AND szakgyak.ID IS NULL
) NemErtekeltOsszefuggoSzakmaiGyakorlatosTanulok
FROM T_INTEZMENYADATOK_OSSZES intezmenyAdatok
INNER JOIN T_INTEZMENY_OSSZES intezmeny ON intezmeny.ID = intezmenyAdatok.C_INTEZMENYID AND intezmeny.TOROLT = 'F'
WHERE intezmenyAdatok.TOROLT = 'F'
AND intezmenyAdatok.C_TANEVID = @pTanevId
AND intezmenyAdatok.C_INTEZMENYID = @pIntezmenyId
END
GO