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

34 lines
1.4 KiB
Transact-SQL

DROP FUNCTION IF EXISTS fnGetOsztalyCsoportTanuloOsztalyList
GO
CREATE FUNCTION fnGetOsztalyCsoportTanuloOsztalyList (
@pTanevId int
,@pOsztalyCsoportId int
,@pFeladatKategoriaId int
,@pDatum date = NULL
,@pIsFromSzervezet bit = 0
)
RETURNS TABLE
AS RETURN
--NOTE: Azért kell a DISTINCT, ha ugyanoda ki-/besorolgatják a tanulót!
SELECT DISTINCT
TanuloCsoport.C_TANULOID
,OsztalyCsoport.ID
,OsztalyCsoport.C_EVFOLYAMTIPUSA
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
INNER JOIN T_TANULOCSOPORT_OSSZES SourceTanuloCsoport ON SourceTanuloCsoport.TOROLT = 'F'
AND SourceTanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND SourceTanuloCsoport.C_TANULOID = TanuloCsoport.C_TANULOID
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID AND Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID
AND Osztaly.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = Osztaly.ID AND OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID
AND OsztalyCsoport.TOROLT = 'F'
AND (OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pIsFromSzervezet = 1)
WHERE TanuloCsoport.C_TANEVID = @pTanevId
AND TanuloCsoport.TOROLT = 'F'
AND TanuloCsoport.C_BELEPESDATUM <= ISNULL(@pDatum, CONVERT(date, GETDATE()))
AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM > ISNULL(@pDatum, CONVERT(date, GETDATE())))
GO