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