DROP PROCEDURE IF EXISTS dbo.uspGetKiiratkoztatottTanulok GO CREATE PROCEDURE dbo.uspGetKiiratkoztatottTanulok @pFeladatKategoriaId int ,@pTanevId int AS BEGIN SET NOCOUNT ON; SELECT t.ID AS ID ,f.Nev ,f.NevElotagNelkul ,f.SzulDatum ,f.Neme ,besorolas.KilepesDatum FROM T_TANULO_OSSZES t INNER JOIN ( SELECT ID ,C_NYOMTATASINEV + ' (' + CONVERT(nvarchar(50), C_SZULETESIDATUM, 102) + '.) ' AS Nev ,IIF(C_NEVSORREND = 'T', C_UTONEV + ' ' + C_VEZETEKNEV, C_VEZETEKNEV + ' ' + C_UTONEV) as 'NevElotagNelkul' ,C_SZULETESIDATUM AS SzulDatum ,C_NEME AS Neme FROM T_FELHASZNALO_OSSZES WHERE T_FELHASZNALO_OSSZES.TOROLT = 'F' AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId ) f ON f.ID = t.ID INNER JOIN ( SELECT tcs.C_TANULOID AS TanuloId ,MAX(tcs.C_KILEPESDATUM) AS KilepesDatum FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId AND ocs.C_TANEVID = tcs.C_TANEVID AND ocs.TOROLT = 'F' INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.C_ALTANEVID = ocs.C_TANEVID AND o.TOROLT = 'F' WHERE tcs.C_KILEPESDATUM IS NOT NULL AND tcs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F' GROUP BY tcs.C_TANULOID ) besorolas ON besorolas.TanuloId = f.ID WHERE NOT EXISTS ( SELECT 1 FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId AND ocs.C_TANEVID = tcs.C_TANEVID AND ocs.TOROLT = 'F' INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.C_ALTANEVID = ocs.C_TANEVID AND o.TOROLT = 'F' WHERE tcs.C_TANULOID = t.ID AND GETDATE() BETWEEN tcs.C_BELEPESDATUM AND ISNULL(tcs.C_KILEPESDATUM, GETDATE()) AND tcs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F' ) AND t.C_ALTANEVID = @pTanevId AND t.TOROLT = 'F' END GO