DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDataSetByMagatartasSzorgalom GO CREATE PROCEDURE uspGetTanuloErtekelesDataSetByMagatartasSzorgalom @pTanevId int ,@pTanarId int ,@pOsztalyCsoportId int ,@pDatum date = NULL AS BEGIN SET NOCOUNT ON; DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId) IF @pDatum IS NULL SET @pDatum = CONVERT(date, GETDATE()) CREATE TABLE #TanuloOsztalyEvfolyamTipusIdList ( TanuloId int PRIMARY KEY ,EvfolyamTipusId int ) INSERT INTO #TanuloOsztalyEvfolyamTipusIdList ( TanuloId ,EvfolyamTipusId ) SELECT tanuloOsztalyList.C_TANULOID AS TanuloId ,tanuloOsztalyList.C_EVFOLYAMTIPUSA AS EvfolyamTipusId FROM fnGetOsztalyCsoportTanuloOsztalyList(@pTanevId, @pOsztalyCsoportId, @pDatum) tanuloOsztalyList SELECT FelhasznaloTanulo.ID AS TanuloId ,NULL AS TantargyId ,FelhasznaloTanulo.C_NYOMTATASINEV AS TanuloNev ,IIF(FelhasznaloTanulo.C_NEVSORREND = 'T', FelhasznaloTanulo.C_UTONEV + ' ' + FelhasznaloTanulo.C_VEZETEKNEV, FelhasznaloTanulo.C_VEZETEKNEV + ' ' + FelhasznaloTanulo.C_UTONEV) AS TanuloNevElotagNelkul ,FelhasznaloTanulo.C_ANYJANEVE AS AnyjaNeve ,FelhasznaloTanulo.C_SZULETESIDATUM AS SzuletesiIdo ,OsztalyCsoport.ID AS OsztalyId ,OsztalyCsoport.C_NEV AS OsztalyNev ,TanuloErtekeles.ID AS ID ,TanuloErtekeles.C_DATUM AS Datum ,TanuloErtekeles.C_ROGZITESDATUM AS RogzitesDatum ,TanuloErtekeles.C_TIPUSID AS TipusId ,TanuloErtekeles.C_NYOMTATASINEV AS ErtekeloNyomtatasiNev ,IIF(TanuloErtekeles.C_ERTEKELOID = @pTanarId,'T','F') AS Modosithato ,TanuloErtekeles.C_ROGZITESDATUM AS Created ,TanuloErtekeles.C_ISMAGATARTASSZORGALOM AS IsMagatartasSzorgalom ,TanuloErtekeles.C_ISERTESITESELKULDVE AS IsErtesitesElkuldve ,TanuloErtekeles.C_MAGATARTASOSZTALYZATID AS MagatartasOsztalyzatId ,TanuloErtekeles.C_MAGATARTASSZOVEG AS MagatartasSzoveg ,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV AS MagatartasSzovegRovidNev ,TanuloErtekeles.C_MAGATARTASERTEKID AS MagatartasErtekId ,TanuloErtekeles.C_SZORGALOMOSZTALYZATID AS SzorgalomOsztalyzatId ,TanuloErtekeles.C_SZORGALOMSZOVEG AS SzorgalomSzoveg ,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV AS SzorgalomSzovegRovidNev ,TanuloErtekeles.C_SZORGALOMERTEKID AS SzorgalomErtekId FROM T_TANULOCSOPORT_OSSZES TanuloCsoport INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = TanuloCsoport.C_TANEVID AND Tanev.TOROLT = 'F' INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloTanulo ON FelhasznaloTanulo.TOROLT = 'F' AND FelhasznaloTanulo.ID = TanuloCsoport.C_TANULOID AND FelhasznaloTanulo.C_TANEVID = TanuloCsoport.C_TANEVID INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID AND OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID LEFT JOIN ( SELECT TanuloErtekeles.* ,FelhasznaloErtekelo.C_NYOMTATASINEV FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.TOROLT = 'F' AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.C_FELADATKATEGORIAID = @kategoriaId INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.TOROLT = 'F' AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID AND FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID INNER JOIN #TanuloOsztalyEvfolyamTipusIdList Evfolyam ON Evfolyam.TanuloId = TanuloErtekeles.C_TANULOID AND Evfolyam.EvfolyamTipusId = Osztaly.C_EVFOLYAMTIPUSA WHERE TanuloErtekeles.TOROLT = 'F' AND (TanuloErtekeles.C_TANTARGYID IS NULL OR TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T') AND TanuloErtekeles.C_TANEVID = @pTanevId AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL UNION SELECT TanuloErtekeles.* ,FelhasznaloErtekelo.C_NYOMTATASINEV FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.TOROLT = 'F' AND Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.C_FELADATKATEGORIAID = @kategoriaId INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.TOROLT = 'F' AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID AND FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID INNER JOIN #TanuloOsztalyEvfolyamTipusIdList Evfolyam ON Evfolyam.TanuloId = TanuloErtekeles.C_TANULOID AND Evfolyam.EvfolyamTipusId = Osztaly.C_EVFOLYAMTIPUSA WHERE TanuloErtekeles.TOROLT = 'F' AND (TanuloErtekeles.C_TANTARGYID IS NULL OR TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T') AND TanuloErtekeles.C_TANEVID = @pTanevId AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL ) AS TanuloErtekeles ON TanuloErtekeles.C_TANULOID = TanuloCsoport.C_TANULOID AND TanuloErtekeles.C_OSZTALYCSOPORTID = OsztalyCsoport.ID WHERE TanuloCsoport.TOROLT = 'F' AND TanuloCsoport.C_TANEVID = @pTanevId AND TanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND TanuloCsoport.C_BELEPESDATUM <= @pDatum AND (TanuloCsoport.C_KILEPESDATUM > @pDatum OR TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= Tanev.C_UTOLSOTANITASINAP) END GO