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

67 lines
2.1 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS dbo.uspGetKiiratkoztatottTanulok
GO
CREATE PROCEDURE dbo.uspGetKiiratkoztatottTanulok
@pFeladatKategoriaId int
,@pTanevId int
AS
BEGIN
SET NOCOUNT ON;
SELECT
t.ID AS ID
,f.Nev
,f.NevElotagNelkul
,f.SzulDatum
,f.Neme
,besorolas.KilepesDatum
FROM T_TANULO_OSSZES t
INNER JOIN (
SELECT
ID
,C_NYOMTATASINEV + ' (' + CONVERT(nvarchar(50), C_SZULETESIDATUM, 102) + '.) ' AS Nev
,IIF(C_NEVSORREND = 'T',
C_UTONEV + ' ' + C_VEZETEKNEV,
C_VEZETEKNEV + ' ' + C_UTONEV) as 'NevElotagNelkul'
,C_SZULETESIDATUM AS SzulDatum
,C_NEME AS Neme
FROM T_FELHASZNALO_OSSZES
WHERE T_FELHASZNALO_OSSZES.TOROLT = 'F'
AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
) f ON f.ID = t.ID
INNER JOIN (
SELECT
tcs.C_TANULOID AS TanuloId
,MAX(tcs.C_KILEPESDATUM) AS KilepesDatum
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId
AND ocs.C_TANEVID = tcs.C_TANEVID
AND ocs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
AND o.C_ALTANEVID = ocs.C_TANEVID
AND o.TOROLT = 'F'
WHERE tcs.C_KILEPESDATUM IS NOT NULL
AND tcs.C_TANEVID = @pTanevId
AND tcs.TOROLT = 'F'
GROUP BY tcs.C_TANULOID
) besorolas ON besorolas.TanuloId = f.ID
WHERE NOT EXISTS (
SELECT 1
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId
AND ocs.C_TANEVID = tcs.C_TANEVID
AND ocs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
AND o.C_ALTANEVID = ocs.C_TANEVID
AND o.TOROLT = 'F'
WHERE tcs.C_TANULOID = t.ID
AND GETDATE() BETWEEN tcs.C_BELEPESDATUM AND ISNULL(tcs.C_KILEPESDATUM, GETDATE())
AND tcs.C_TANEVID = @pTanevId
AND tcs.TOROLT = 'F'
)
AND t.C_ALTANEVID = @pTanevId AND t.TOROLT = 'F'
END
GO