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

32 lines
No EOL
1.6 KiB
Transact-SQL

DROP FUNCTION IF EXISTS fnGetTanuloOsztalyString
GO
CREATE FUNCTION fnGetTanuloOsztalyString (
@pTanuloId int
,@pDatum date = NULL
,@pFeladatKategoriaId int = NULL
,@pKiiratkozottNeJelenjenMeg bit = 1
,@pKovTanev bit = 0
,@pFilterOsztalyId int = NULL)
RETURNS @retTable TABLE (Osztalynev nvarchar(4000))
AS BEGIN
INSERT INTO @retTable
SELECT STUFF((
SELECT ', '+OsztalyCsoport.C_NEV
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
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 @pFeladatKategoriaId IS NULL)
INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = TanuloCsoport.C_TANEVID AND Tanev.TOROLT = 'F'
WHERE TanuloCsoport.C_TANULOID = @pTanuloId
AND TanuloCsoport.TOROLT = 'F'
AND (TanuloCsoport.C_BELEPESDATUM <= ISNULL(@pDatum,GETDATE()) OR @pKovTanev = 1)
AND (((TanuloCsoport.C_KILEPESDATUM > ISNULL(@pDatum,GETDATE()) OR TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= Tanev.C_UTOLSOTANITASINAP)
OR @pKiiratkozottNeJelenjenMeg = 0)
OR @pKovTanev = 1)
AND (@pFilterOsztalyId IS NULL OR @pFilterOsztalyId = TanuloCsoport.C_OSZTALYCSOPORTID)
FOR XML PATH('')),1,1,'')
RETURN
END
GO