60 lines
2.3 KiB
Transact-SQL
60 lines
2.3 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetTanuloOsztalyCsoportjai
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetTanuloOsztalyCsoportjai
|
|
@pTanuloIds nvarchar(max)
|
|
,@pTanevId int
|
|
,@pIsAktiv bit
|
|
,@pFeladatKategoriaId int
|
|
,@pOsztalyfonokIds nvarchar(max)
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@tanevNev nvarchar(30)
|
|
,@sql nvarchar(max)
|
|
|
|
SELECT @tanevNev = C_NEV
|
|
FROM T_TANEV
|
|
WHERE ID = @pTanevId
|
|
|
|
SET @sql = N'
|
|
SELECT DISTINCT
|
|
CASE WHEN @pTanuloIds IS NULL THEN -1 ELSE tcs.ID END AS ID
|
|
,tcs.C_OSZTALYCSOPORTID OsztalyCsoportId
|
|
,ocs.C_NEV Nev
|
|
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipus
|
|
,ocs.C_FELADATKATEGORIAID FeladatKategoriaId
|
|
,@tanevNev Tanev
|
|
,tcs.C_TANULOID TanuloId
|
|
,tcs.C_BELEPESDATUM ErvKezd
|
|
,tcs.C_KILEPESDATUM ErvVeg
|
|
,cs.C_TIPUSA CsoportTipus
|
|
,ob.C_NEV AS Osztalybontas
|
|
,o.C_KEPZESIFORMA AS KepzesiForma
|
|
,CASE WHEN o.ID IS NOT NULL THEN ''F'' ELSE ''T'' END AS IsCsoport
|
|
,o.C_OSZTALYFONOKID AS OsztalyfonokId
|
|
FROM T_TANULOCSOPORT_OSSZES tcs
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND (ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL) AND ocs.TOROLT = ''F'' AND ocs.C_TANEVID = tcs.C_TANEVID
|
|
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID AND cs.TOROLT = ''F'' AND cs.C_ALTANEVID = tcs.C_TANEVID
|
|
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ob ON ob.ID = cs.C_OSZTALYBONTASID AND ob.TOROLT = ''F'' AND ob.C_TANEVID = tcs.C_TANEVID
|
|
LEFT JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.TOROLT = ''F'' AND o.C_ALTANEVID = tcs.C_TANEVID
|
|
WHERE tcs.TOROLT = ''F'' AND tcs.C_TANEVID = @tanevId
|
|
' + IIF(@pTanuloIds IS NOT NULL, ' AND tcs.C_TANULOID IN (SELECT value FROM STRING_SPLIT(@pTanuloIds, '',''))', '')
|
|
+ IIF(@pOsztalyfonokIds IS NOT NULL, ' AND o.C_OSZTALYFONOKID IN (SELECT value FROM STRING_SPLIT(@pOsztalyfonokIds, '',''))', '')
|
|
+ IIF(@pIsAktiv = 1, ' AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM is null or tcs.C_KILEPESDATUM > GETDATE())', '')
|
|
|
|
EXEC sp_executesql @sql, N'
|
|
@pTanuloIds nvarchar(max)
|
|
,@tanevNev nvarchar(30)
|
|
,@tanevId int
|
|
,@pFeladatKategoriaId int
|
|
,@pOsztalyfonokIds nvarchar(max)'
|
|
,@pTanuloIds = @pTanuloIds
|
|
,@tanevNev = @tanevNev
|
|
,@tanevId = @pTanevId
|
|
,@pFeladatKategoriaId = @pFeladatKategoriaId
|
|
,@pOsztalyfonokIds = @pOsztalyfonokIds
|
|
END
|
|
GO
|
|
|
|
|