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

94 lines
No EOL
4 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[uspGetTanulokTantargyaiEsPedagogusaiExcelExport]
GO
CREATE PROCEDURE [dbo].[uspGetTanulokTantargyaiEsPedagogusaiExcelExport]
@pTanevId int = NULL
,@pFeladatkategoriaId int = NULL
,@pDatum datetime = NULL
,@pAmiKategoriaId int = NULL
AS BEGIN
SET NOCOUNT ON;
DECLARE
@sql nvarchar(max) = ''
SET @sql += N'
SELECT
felhasznalotanulo.C_ELOTAG AS ''Előtag''
,felhasznalotanulo.C_VEZETEKNEV AS ''Vezetéknév''
,felhasznalotanulo.C_UTONEV AS ''Utónév''
,felhasznalotanulo.C_OKTATASIAZONOSITO AS ''Oktatási azonosító''
,osztalycsoport.C_NEV AS ''Osztály / Csoport''
,tantargy.C_NEV AS ''Tantárgy''
,felhasznalotanar.C_NYOMTATASINEV AS ''Pedagógus''
,felhasznalotanar.C_OKTATASIAZONOSITO AS ''Pedagógus oktatási azonosító'''
IF @pFeladatkategoriaId IS NOT NULL AND @pFeladatkategoriaId = @pAmiKategoriaId BEGIN
SET @sql += N'
,foglalkozas.C_ORASZAM AS ''Heti óraszám''
,IIF(foglalkozas.C_ISOSSZEVONTORA = ''F'', ''Nem'', IIF(foglalkozas.C_ISOSSZEVONTORA = ''T'', ''Igen'', '''')) AS ''TTF óraszám korrekció''
,fotargy.C_NAME AS ''Főtárgy''
,tagozat.C_NAME AS ''Tagozat''
,tantargykotelezoseg.C_NAME AS ''Tantárgy kötelezőség''
,evfolyamtipus.C_NAME AS ''Évfolyam típus'''
END
SET @sql += N'
FROM T_TANULO_OSSZES tanulo
INNER JOIN T_FELHASZNALO_OSSZES felhasznalotanulo ON felhasznalotanulo.ID = tanulo.ID
AND felhasznalotanulo.TOROLT = ''F''
AND tanulo.C_ALTANEVID = @pTanevId
INNER JOIN T_TANULOCSOPORT_OSSZES tancsop ON tancsop.C_TANULOID = tanulo.ID AND tancsop.C_BELEPESDATUM <= CONVERT(date, @pDatum) AND (C_KILEPESDATUM > CONVERT(date, @pDatum) OR C_KILEPESDATUM IS NULL)
AND tancsop.TOROLT = ''F''
AND tancsop.C_TANEVID = @pTanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalycsoport ON osztalycsoport.ID = tancsop.C_OSZTALYCSOPORTID
AND osztalycsoport.TOROLT = ''F''
AND osztalycsoport.C_TANEVID = @pTanevId
INNER JOIN T_FOGLALKOZAS_OSSZES foglalkozas ON foglalkozas.C_OSZTALYCSOPORTID = osztalycsoport.ID
AND foglalkozas.TOROLT = ''F''
AND foglalkozas.C_TANEVID = @pTanevId
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = foglalkozas.C_TANTARGYID
AND tantargy.TOROLT = ''F''
AND tantargy.C_TANEVID = @pTanevId
INNER JOIN T_FELHASZNALO_OSSZES felhasznalotanar ON felhasznalotanar.ID = foglalkozas.C_TANARID
AND felhasznalotanar.TOROLT = ''F''
AND felhasznalotanar.C_TANEVID = @pTanevId'
IF @pFeladatkategoriaId IS NOT NULL AND @pFeladatkategoriaId = @pAmiKategoriaId BEGIN
SET @sql += N'
LEFT JOIN T_FOGLALKOZASAMITANULO_OSSZES fat ON fat.C_FOGLALKOZASID = foglalkozas.ID
AND fat.C_TANULOID = tanulo.ID
AND fat.C_TANEVID = @pTanevId
AND fat.TOROLT = ''F''
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES fotargy ON fotargy.ID = fat.C_AMIFOTARGYID
AND fotargy.C_TANEVID = fat.C_TANEVID
AND fotargy.TOROLT = ''F''
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tagozat on tagozat.ID = fat.C_AMITAGOZATID
AND tagozat.C_TANEVID = fat.C_TANEVID
AND tagozat.TOROLT = ''F''
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tantargykotelezoseg on tantargykotelezoseg.ID = fat.C_AMITANTARGYKOTELEZOSEGID
AND tantargykotelezoseg.C_TANEVID = fat.C_TANEVID
AND tantargykotelezoseg.TOROLT = ''F''
LEFT JOIN T_DICTIONARYITEMBASE evfolyamtipus ON evfolyamtipus.ID = fat.C_EVFOLYAMTIPUSID
AND evfolyamtipus.C_TANEVID = fat.C_TANEVID
AND evfolyamtipus.TOROLT = ''F'''
END
SET @sql += N'
WHERE tanulo.c_ALTANEVID = @pTanevId
AND (osztalycsoport.C_FELADATKATEGORIAID = @pFeladatkategoriaId OR @pFeladatkategoriaId IS NULL)
ORDER BY felhasznalotanulo.C_VEZETEKNEV, felhasznalotanulo.C_UTONEV'
EXEC sp_executesql @sql, N'
@pTanevId int = NULL
,@pFeladatkategoriaId int = NULL
,@pDatum datetime = NULL
,@pAmiKategoriaId int = NULL'
,@pTanevId = @pTanevId
,@pFeladatkategoriaId = @pFeladatkategoriaId
,@pDatum = @pDatum
,@pAmiKategoriaId = @pAmiKategoriaId
END
GO