DROP PROCEDURE IF EXISTS uspGetFaliujsagBejegyzesekData GO CREATE PROCEDURE dbo.uspGetFaliujsagBejegyzesekData @pTanevId int ,@pOktNevKatTipus int = NULL ,@pFeladatEllatasiHelyId int = NULL ,@pOsztalyCsoportId int = NULL ,@pIsKellKapcsolodoCsoportok bit ,@pFeljegyzoId int = NULL ,@pDatumTol datetime = NULL ,@pDatumIg datetime = NULL ,@pTipus int AS BEGIN SET NOCOUNT ON; DECLARE @sql nvarchar(max) SET @sql = N' SELECT DISTINCT te.ID AS ID ,te.C_ESEMENYDATUMA AS Datum ,te.C_MEGJEGYZES AS Megjegyzes ,te.C_TARTALOM AS Tartalom ,te.C_TIPUS AS Tipus ,te.C_FELJEGYZOID AS FeljegyzoId ,te.C_TANTARGYID AS TantargyId ,FELJEGYZO.C_NYOMTATASINEV AS FeljegyzoNev ,IIF(FELJEGYZO.C_NEVSORREND = ''T'', FELJEGYZO.C_UTONEV + '' '' + FELJEGYZO.C_VEZETEKNEV, FELJEGYZO.C_VEZETEKNEV + '' '' + FELJEGYZO.C_UTONEV) AS FeljegyzoNevElotagNelkul ,ocs.ID AS OsztalyCsoportId ,ocs.C_NEV AS OsztalyCsoport ,ocs.C_FELADATKATEGORIAID AS OktNevKategoriaTipusId ,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId ,te.C_KEZDETE AS Kezdete ,te.C_TARGY AS Cim ,te.C_FALIUJSAGMEGJELENES AS FaliujsagMegjelenes ,te.C_MINDENKINEK AS Mindenkinek ,te.C_VEGE AS Vege ,targy.C_NEV AS TantargyNev FROM T_TANULOESEMENY_OSSZES te INNER JOIN T_OSZTALYCSOPORT_TANULOESEMENY ON T_OSZTALYCSOPORT_TANULOESEMENY.C_TANULOESEMENYID = te.ID INNER JOIN T_FELHASZNALO_OSSZES FELJEGYZO ON FELJEGYZO.ID = te.C_FELJEGYZOID AND FELJEGYZO.TOROLT = ''F'' LEFT JOIN T_TANTARGY_OSSZES targy ON targy.ID = te.C_TANTARGYID AND targy.TOROLT = ''F'' INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = T_OSZTALYCSOPORT_TANULOESEMENY.C_OSZTALYCSOPORTID AND ocs.TOROLT = ''F''' SET @sql += IIF(@pOktNevKatTipus IS NOT NULL, N' AND ocs.C_FELADATKATEGORIAID = @pOktNevKatTipus', '') SET @sql += IIF(@pFeladatEllatasiHelyId IS NOT NULL, N' AND ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId', '') IF @pOsztalyCsoportId IS NOT NULL BEGIN SET @sql += IIF(@pIsKellKapcsolodoCsoportok = 1, N' AND ocs.ID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyCsoportId))', N' AND ocs.ID = @pOsztalyCsoportId') END SET @sql += N' WHERE te.TOROLT = ''F'' AND te.C_TANEVID = @pTanevId ' SET @sql += IIF(@pFeljegyzoId IS NOT NULL, N' AND te.C_FELJEGYZOID = @pFeljegyzoId', '') SET @sql += IIF(@pDatumTol IS NOT NULL, N' AND te.C_ESEMENYDATUMA >= @pDatumTol', '') SET @sql += IIF(@pDatumIg IS NOT NULL, N' AND te.C_ESEMENYDATUMA <= @pDatumIg', '') SET @sql += N' AND te.C_TIPUS = @pTipus' EXEC sp_executesql @sql ,N' @pOktNevKatTipus int ,@pFeladatEllatasiHelyId int ,@pOsztalyCsoportId int ,@pTanevId int ,@pFeljegyzoId int ,@pDatumTol datetime ,@pDatumIg datetime ,@pTipus int ' ,@pOktNevKatTipus = @pOktNevKatTipus ,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId ,@pOsztalyCsoportId = @pOsztalyCsoportId ,@pTanevId = @pTanevId ,@pFeljegyzoId = @pFeljegyzoId ,@pDatumTol = @pDatumTol ,@pDatumIg = @pDatumIg ,@pTipus = @pTipus END