37 lines
1.6 KiB
Transact-SQL
37 lines
1.6 KiB
Transact-SQL
DROP FUNCTION IF EXISTS fnGetOsztalyCsoportokUtolsoTanitasiNap
|
|
GO
|
|
|
|
CREATE FUNCTION fnGetOsztalyCsoportokUtolsoTanitasiNap (@pTanevId int ,@pOsztalyCsoportId int = NULL
|
|
)
|
|
returns @ResultTable TABLE (OsztalycsoportId int, UtolsoTanitasiNap Datetime, VegzosEvfolyam CHAR(1))
|
|
AS BEGIN
|
|
DECLARE @VegzosUtolsoTanitasiNap datetime;
|
|
SELECT @VegzosUtolsoTanitasiNap = MIN(C_DATUM)
|
|
FROM T_TANEVRENDJE_OSSZES
|
|
WHERE TOROLT = 'F'
|
|
AND C_TANEVID = @pTanevId
|
|
AND C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603, 1395)
|
|
AND C_OSSZESCSOPORTRAVONATKOZIK = 'T'
|
|
|
|
INSERT INTO @ResultTable (OsztalycsoportId, UtolsoTanitasiNap, VegzosEvfolyam)
|
|
SELECT
|
|
ocs.ID AS OsztalycsoportId
|
|
,IIF(C_VEGZOSEVFOLYAM = 'T', IIF(x.C_OSZTALYCSOPORTID IS NOT NULL, NewVegeDatum, @VegzosUtolsoTanitasiNap), t.C_UTOLSONAP) AS UtolsoTanitasiNap
|
|
,C_VEGZOSEVFOLYAM AS VegzosEvfolyam
|
|
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
|
INNER JOIN T_TANEV_OSSZES t ON t.ID = @pTanevId AND t.ID = ocs.C_TANEVID AND t.TOROLT = 'F'
|
|
LEFT JOIN (
|
|
SELECT MIN(tr.C_DATUM) AS NewVegeDatum, ocstr.C_OSZTALYCSOPORTID
|
|
FROM T_TANEVRENDJE_OSSZES tr
|
|
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
|
|
WHERE tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
|
|
AND tr.TOROLT = 'F'
|
|
AND tr.C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603)
|
|
AND tr.C_TANEVID = @pTanevId
|
|
GROUP BY ocstr.C_OSZTALYCSOPORTID
|
|
) x ON x.C_OSZTALYCSOPORTID = ocs.Id
|
|
WHERE (@pOsztalyCsoportId IS NULL OR @pOsztalyCsoportId = ocs.ID) AND ocs.TOROLT = 'F'
|
|
RETURN
|
|
|
|
END
|
|
GO
|