78 lines
2.3 KiB
Transact-SQL
78 lines
2.3 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetTanarNemTanitottTanuloi
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetTanarNemTanitottTanuloi
|
|
@pTanarId int
|
|
,@pOsztalycsoportId int = NULL
|
|
,@pTanevId int
|
|
,@pIntezmenyId int
|
|
,@pFeladatKategoriaId int = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
DECLARE
|
|
@sql nvarchar(max)
|
|
,@sqlWhere nvarchar(max)
|
|
|
|
SET @sql = N'
|
|
SELECT
|
|
fh.ID
|
|
,fh.C_NYOMTATASINEV AS TanuloNev
|
|
,IIF(fh.C_NEVSORREND = ''T'',
|
|
fh.C_UTONEV + '' '' + fh.C_VEZETEKNEV,
|
|
fh.C_VEZETEKNEV + '' '' + fh.C_UTONEV
|
|
) AS TanuloNevElotagNelkul
|
|
,ocs.C_nev AS OsztalyCsoportNev
|
|
,ocs.ID AS OsztalyCsoportId
|
|
,fh.C_SZULETESIDATUM AS SzuletesiIdo
|
|
,fh.C_OKTATASIAZONOSITO AS OktAzon
|
|
FROM T_FELHASZNALO fh
|
|
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID = fh.ID AND tcs.TOROLT = ''F''
|
|
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
|
|
AND (ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
|
|
AND ocs.TOROLT = ''F'''
|
|
|
|
SET @sqlWhere = N'
|
|
WHERE NOT EXISTS ( /* Tanított tanulók */
|
|
SELECT 1
|
|
FROM T_TANULOCSOPORT_OSSZES tcs
|
|
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID
|
|
WHERE f.C_TANARID = @pTanarId
|
|
AND f.TOROLT = ''F''
|
|
AND tcs.TOROLT = ''F''
|
|
AND tcs.C_BELEPESDATUM <= GETDATE()
|
|
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
|
|
AND tcs.C_TANULOID = fh.ID
|
|
)
|
|
AND fh.TOROLT = ''F''
|
|
AND fh.C_TANEVID = @pTanevId
|
|
AND fh.C_INTEZMENYID = @pIntezmenyId
|
|
AND tcs.C_BELEPESDATUM <= GETDATE()
|
|
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())'
|
|
|
|
IF @pOsztalycsoportId IS NULL BEGIN
|
|
SET @sql += N'
|
|
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID /* Ha több osztálya van a diának, többször jelenik meg */
|
|
'
|
|
END
|
|
|
|
IF @pOsztalycsoportId IS NOT NULL BEGIN
|
|
SET @sqlWhere += N'
|
|
AND tcs.C_OSZTALYCSOPORTID = @pOsztalycsoportId'
|
|
END
|
|
|
|
SET @sql += @sqlWhere
|
|
|
|
EXEC sp_executesql @sql, N'
|
|
@pTanarId int
|
|
,@pOsztalycsoportId int
|
|
,@pTanevId int
|
|
,@pIntezmenyId int
|
|
,@pFeladatKategoriaId int'
|
|
,@pTanarId = @pTanarId
|
|
,@pOsztalycsoportId = @pOsztalycsoportId
|
|
,@pTanevId = @pTanevId
|
|
,@pIntezmenyId = @pIntezmenyId
|
|
,@pFeladatKategoriaId = @pFeladatKategoriaId
|
|
END
|
|
GO
|