kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetUjSzktSzakmajegyzekOsszerendelesData.sql
2024-03-13 00:33:46 +01:00

70 lines
3.7 KiB
Transact-SQL

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