DROP PROCEDURE IF EXISTS uspGetUjSzktSzakmajegyzekOsszerendelesData GO CREATE PROCEDURE uspGetUjSzktSzakmajegyzekOsszerendelesData @pTanevId int ,@pIdsJson nvarchar(max) = NULL AS BEGIN SET NOCOUNT ON; DECLARE @SzakmaTipusNa int = 7946 ,@SzakmairanyTipusNa int = 8122 SELECT szor.ID AS Id ,szor.C_OKTATASINEVELESIFELADATID AS OktatasiNevelesiFeladatId ,szor.C_AGAZATUJSZKTTIPUSID AS AgazatUjSzktTipusId ,aut.C_AGAZATIBESOROLAS AS AgazatiBesorolas ,szor.C_SZAKMATIPUSID AS SzakmaTipusId ,szt.C_SZAKKEPESITESAZONOSITOSZAM AS SzakkepesitesAzonositoszam ,szor.C_SZAKMAIRANYTIPUSID AS SzakmaIranyTipusId ,ISNULL(oszt.JelenlegKepzettTanulokSzama, 0) AS JelenlegKepzettTanulokSzama ,szor.C_KEPZESREFOGADHATOTANULOKSZAM AS KepzesreFogadhatoTanulokSzama ,szor.C_FILEID AS FileId ,fl.C_FILENEV AS FileNev ,fl.C_EXTENSION AS FileExtension ,fl.C_FELTOLTESDATUM AS FeltoltesDatum ,szor.C_ESZKOZALLOMANYAVULTSAGA AS EszkozallomanyAvultsaga ,szor.C_ESZKOZOKDARABSZAMA AS EszkozokDarabszama ,szor.C_EGYEBESZKOZALLOMANYINFORMACI AS EgyebEszkozallomanyInformacio ,szor.C_TANMUHELYEKSZAMA AS TanmuhelyekSzama FROM T_UJSZKTSZAKMAJEGYZEKOSSZEREND_OSSZES szor INNER JOIN T_AGAZATUJSZKTTIPUS_OSSZES aut ON aut.ID = szor.C_AGAZATUJSZKTTIPUSID AND aut.C_ALTANEVID = szor.C_TANEVID AND aut.TOROLT = 'F' INNER JOIN T_SZAKMATIPUS_OSSZES szt ON szt.ID = szor.C_SZAKMATIPUSID AND szt.C_ALTANEVID = szor.C_TANEVID AND szt.TOROLT = 'F' LEFT JOIN T_FILE fl ON fl.ID = szor.C_FILEID AND fl.C_TANEVID = szor.C_TANEVID AND fl.TOROLT = 'F' LEFT JOIN ( SELECT tta.C_TANEVID ,feh.C_OKTATASINEVELESIFELADATTIPUS ,tta.C_AGAZATUJSZKTTIPUSID ,tta.C_SZAKMATIPUSID ,tta.C_SZAKMAIRANYTIPUSID ,COUNT(*) AS JelenlegKepzettTanulokSzama FROM T_TANULOTANUGYIADATOK_OSSZES tta INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = tta.C_TANULOCSOPORTID AND tcs.C_TANEVID = tta.C_TANEVID AND tcs.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.C_TANEVID = tta.C_TANEVID AND ocs.TOROLT = 'F' INNER JOIN T_FELADATELLATASIHELY_OSSZES feh ON feh.ID = ocs.C_FELADATELLATASIHELYID AND feh.C_TANEVID = tta.C_TANEVID AND feh.TOROLT = 'F' WHERE tta.TOROLT = 'F' AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL) GROUP BY tta.C_TANEVID, feh.C_OKTATASINEVELESIFELADATTIPUS, tta.C_AGAZATUJSZKTTIPUSID, tta.C_SZAKMATIPUSID,tta.C_SZAKMAIRANYTIPUSID) AS oszt ON oszt.C_TANEVID = szor.C_TANEVID AND oszt.C_OKTATASINEVELESIFELADATTIPUS = szor.C_OKTATASINEVELESIFELADATID AND oszt.C_AGAZATUJSZKTTIPUSID = szor.C_AGAZATUJSZKTTIPUSID AND (oszt.C_SZAKMATIPUSID = szor.C_SZAKMATIPUSID OR -- True-nak kell lennie, ha megyeznek vagy,... (oszt.C_SZAKMATIPUSID IS NULL AND szor.C_SZAKMATIPUSID IS NULL) OR -- ha mindkettő NULL vagy,... (oszt.C_SZAKMATIPUSID = @SzakmaTipusNa AND szor.C_SZAKMATIPUSID IS NULL)) -- ha tanuló értéke Na és az UjSzktSzakmajegyzekOsszerendeles-nél NULL! AND (oszt.C_SZAKMAIRANYTIPUSID = szor.C_SZAKMAIRANYTIPUSID OR -- True-nak kell lennie, ha megyeznek vagy,... (oszt.C_SZAKMAIRANYTIPUSID IS NULL AND szor.C_SZAKMAIRANYTIPUSID IS NULL) OR -- ha mindkettő NULL vagy,... (oszt.C_SZAKMAIRANYTIPUSID = @SzakmairanyTipusNa AND szor.C_SZAKMAIRANYTIPUSID IS NULL)) -- ha tanuló értéke Na és az UjSzktSzakmajegyzekOsszerendeles-nél NULL! WHERE szor.C_TANEVID = @pTanevId AND szor.TOROLT = 'F' AND (@pIdsJson IS NULL OR szor.ID IN (SELECT list.Id FROM OPENJSON(@pIdsJson) WITH (id INT 'strict $.Id') AS list)) END GO