332 lines
13 KiB
Transact-SQL
332 lines
13 KiB
Transact-SQL
-- =============================================
|
|
-- Description: <Előszedjük a tanuló értékeléseket főtárgy/altárgy alapján>
|
|
-- =============================================
|
|
DROP PROCEDURE IF EXISTS [dbo].[uspGetTanuloErtekelesDataSetByFotargyAltargy]
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[uspGetTanuloErtekelesDataSetByFotargyAltargy]
|
|
@pIntezmenyId INT
|
|
,@pTanevId INT
|
|
,@pTanarId INT
|
|
,@pTanuloId INT
|
|
,@pFotargyAltargyId INT
|
|
,@pDatum DATE = NULL
|
|
,@pFeladatKategoriaId INT
|
|
,@pAmiKategoriaId INT
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
IF @pDatum IS NULL
|
|
SET @pDatum = CONVERT(DATE, GETDATE())
|
|
|
|
DECLARE
|
|
@evfolyamTipusId INT
|
|
|
|
SELECT TOP (1)
|
|
@evfolyamTipusId = tanuloOsztaly.EvfolyamTipusId
|
|
FROM
|
|
fnGetTanuloOsztaly(@pTanuloId, @pDatum, @pFeladatKategoriaId, 0, DEFAULT) tanuloOsztaly
|
|
ORDER BY
|
|
tanuloOsztaly.BelepesDatuma DESC
|
|
|
|
CREATE TABLE #KapcsopodoTantargyak (
|
|
ID INT
|
|
,C_FOTARGYID INT
|
|
,C_NEV NVARCHAR(255)
|
|
,C_TARGYKATEGORIA INT
|
|
,C_INTEZMENYID INT
|
|
,C_TANEVID INT
|
|
,C_ISTANULMANYIATLAGBANEMSZAMIT CHAR(1)
|
|
)
|
|
INSERT INTO
|
|
#KapcsopodoTantargyak
|
|
SELECT
|
|
ID
|
|
,C_FOTARGYID
|
|
,C_NEV
|
|
,C_TARGYKATEGORIA
|
|
,C_INTEZMENYID
|
|
,C_TANEVID
|
|
,C_ISTANULMANYIATLAGBANEMSZAMIT
|
|
FROM
|
|
fnGetKapcsolodoTantargyak(@pIntezmenyId, @pTanevId, @pFotargyAltargyId)
|
|
|
|
CREATE TABLE #OsztalyCsoportIdList (
|
|
ID INT PRIMARY KEY
|
|
)
|
|
INSERT INTO #OsztalyCsoportIdList (
|
|
ID
|
|
)
|
|
SELECT
|
|
OsztalyCsoport.ID
|
|
FROM
|
|
T_TANULOCSOPORT_OSSZES TanuloCsoport
|
|
INNER JOIN
|
|
T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON
|
|
OsztalyCsoport.C_INTEZMENYID = TanuloCsoport.C_INTEZMENYID
|
|
AND OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID
|
|
AND OsztalyCsoport.TOROLT = 'F'
|
|
AND OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
|
|
AND (OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
|
|
WHERE
|
|
TanuloCsoport.C_INTEZMENYID = @pIntezmenyId
|
|
AND TanuloCsoport.C_TANEVID = @pTanevId
|
|
AND TanuloCsoport.TOROLT = 'F'
|
|
AND TanuloCsoport.C_TANULOID = @pTanuloId
|
|
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
|
|
AND (TanuloCsoport.C_KILEPESDATUM > @pDatum OR TanuloCsoport.C_KILEPESDATUM IS NULL)
|
|
|
|
CREATE TABLE #Tantargyak (
|
|
ID INT
|
|
,C_FOTARGYID INT
|
|
,C_NEV NVARCHAR(255)
|
|
,C_TARGYKATEGORIA INT
|
|
,C_INTEZMENYID INT
|
|
,C_TANEVID INT
|
|
,C_ISTANULMANYIATLAGBANEMSZAMIT CHAR(1)
|
|
);
|
|
WITH tantargy_CTE (C_TANTARGYID, C_FOTARGYID, C_INTEZMENYID, C_TANEVID, C_ISTANULMANYIATLAGBANEMSZAMIT)
|
|
AS (
|
|
SELECT DISTINCT
|
|
Foglalkozas.C_TANTARGYID,
|
|
Tantargy.C_FOTARGYID,
|
|
Tantargy.C_INTEZMENYID,
|
|
Tantargy.C_TANEVID,
|
|
Tantargy.C_ISTANULMANYIATLAGBANEMSZAMIT
|
|
FROM
|
|
T_FOGLALKOZAS_OSSZES Foglalkozas
|
|
INNER JOIN
|
|
T_TANTARGY_OSSZES Tantargy ON
|
|
Tantargy.C_INTEZMENYID = Foglalkozas.C_INTEZMENYID
|
|
AND Tantargy.C_TANEVID = Foglalkozas.C_TANEVID
|
|
AND Tantargy.TOROLT = 'F'
|
|
AND Tantargy.ID = Foglalkozas.C_TANTARGYID
|
|
INNER JOIN
|
|
#OsztalyCsoportIdList OsztalyCsoport ON
|
|
OsztalyCsoport.ID = Foglalkozas.C_OSZTALYCSOPORTID
|
|
WHERE
|
|
Foglalkozas.C_INTEZMENYID = @pIntezmenyId
|
|
AND Foglalkozas.C_TANEVID = @pTanevId
|
|
AND Foglalkozas.TOROLT = 'F'
|
|
|
|
UNION
|
|
|
|
SELECT DISTINCT
|
|
OrarendiOra.C_TANTARGYID,
|
|
Tantargy.C_FOTARGYID,
|
|
Tantargy.C_INTEZMENYID,
|
|
Tantargy.C_TANEVID,
|
|
Tantargy.C_ISTANULMANYIATLAGBANEMSZAMIT
|
|
FROM
|
|
T_ORARENDIORA_OSSZES OrarendiOra
|
|
INNER JOIN
|
|
T_TANTARGY_OSSZES Tantargy ON
|
|
Tantargy.C_INTEZMENYID = OrarendiOra.C_INTEZMENYID
|
|
AND Tantargy.C_TANEVID = OrarendiOra.C_TANEVID
|
|
AND Tantargy.TOROLT = 'F'
|
|
AND Tantargy.ID = OrarendiOra.C_TANTARGYID
|
|
INNER JOIN
|
|
#OsztalyCsoportIdList OsztalyCsoport ON
|
|
OsztalyCsoport.ID = OrarendiOra.C_OSZTALYCSOPORTID
|
|
WHERE
|
|
OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
|
AND OrarendiOra.C_TANEVID = @pTanevId
|
|
AND OrarendiOra.TOROLT = 'F'
|
|
|
|
UNION
|
|
|
|
SELECT DISTINCT
|
|
TanuloErtekeles.C_TANTARGYID,
|
|
Tantargy.C_FOTARGYID,
|
|
Tantargy.C_INTEZMENYID,
|
|
Tantargy.C_TANEVID,
|
|
Tantargy.C_ISTANULMANYIATLAGBANEMSZAMIT
|
|
FROM
|
|
T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
|
INNER JOIN
|
|
T_TANTARGY_OSSZES Tantargy ON
|
|
Tantargy.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
|
|
AND Tantargy.C_TANEVID = TanuloErtekeles.C_TANEVID
|
|
AND Tantargy.TOROLT = 'F'
|
|
AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID
|
|
INNER JOIN
|
|
T_OSZTALYCSOPORT_OSSZES Osztaly ON
|
|
Osztaly.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
|
|
AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
|
|
AND Osztaly.TOROLT = 'F'
|
|
AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
|
|
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
|
|
INNER JOIN
|
|
T_TANULOCSOPORT_OSSZES TanuloCsoport ON
|
|
TanuloCsoport.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
|
|
AND TanuloCsoport.C_TANEVID = TanuloErtekeles.C_TANEVID
|
|
AND TanuloCsoport.TOROLT = 'F'
|
|
AND TanuloCsoport.C_OSZTALYCSOPORTID = Osztaly.ID
|
|
AND TanuloCsoport.C_TANULOID = TanuloErtekeles.C_TANULOID
|
|
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
|
|
WHERE
|
|
TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId
|
|
AND TanuloErtekeles.C_TANEVID = @pTanevId
|
|
AND TanuloErtekeles.TOROLT = 'F'
|
|
AND TanuloErtekeles.C_TANULOID = @pTanuloId
|
|
AND TanuloErtekeles.C_TANTARGYID IS NOT NULL
|
|
|
|
UNION ALL
|
|
|
|
SELECT DISTINCT
|
|
TanuloErtekeles.C_TANTARGYID,
|
|
Tantargy.C_FOTARGYID,
|
|
Tantargy.C_INTEZMENYID,
|
|
Tantargy.C_TANEVID,
|
|
Tantargy.C_ISTANULMANYIATLAGBANEMSZAMIT
|
|
FROM
|
|
T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
|
INNER JOIN
|
|
T_TANTARGY_OSSZES Tantargy ON
|
|
Tantargy.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
|
|
AND Tantargy.C_TANEVID = TanuloErtekeles.C_TANEVID
|
|
AND Tantargy.TOROLT = 'F'
|
|
AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID
|
|
WHERE
|
|
TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId
|
|
AND TanuloErtekeles.C_TANEVID = @pTanevId
|
|
AND TanuloErtekeles.TOROLT = 'F'
|
|
AND TanuloErtekeles.C_TANULOID = @pTanuloId
|
|
AND TanuloErtekeles.C_TANTARGYID IS NOT NULL
|
|
AND @pFeladatKategoriaId = @pAmiKategoriaId
|
|
)
|
|
INSERT INTO
|
|
#Tantargyak (ID, C_FOTARGYID, C_NEV, C_TARGYKATEGORIA, C_INTEZMENYID, C_TANEVID, C_ISTANULMANYIATLAGBANEMSZAMIT)
|
|
SELECT DISTINCT
|
|
KapcsopodoTantargy.ID,
|
|
KapcsopodoTantargy.C_FOTARGYID,
|
|
KapcsopodoTantargy.C_NEV,
|
|
KapcsopodoTantargy.C_TARGYKATEGORIA,
|
|
KapcsopodoTantargy.C_INTEZMENYID,
|
|
KapcsopodoTantargy.C_TANEVID,
|
|
KapcsopodoTantargy.C_ISTANULMANYIATLAGBANEMSZAMIT
|
|
FROM
|
|
tantargy_CTE
|
|
INNER JOIN
|
|
#KapcsopodoTantargyak KapcsopodoTantargy ON
|
|
tantargy_CTE.C_TANTARGYID = KapcsopodoTantargy.ID
|
|
OR tantargy_CTE.C_FOTARGYID = KapcsopodoTantargy.ID
|
|
WHERE
|
|
(KapcsopodoTantargy.ID <> @pFotargyAltargyId)
|
|
|
|
--NOTE: Azért kell a DISTINCT, ha ugyanoda ki-/besorolgatják a tanulót!
|
|
SELECT DISTINCT
|
|
@pTanuloId TanuloId
|
|
,Tantargy.ID TantargyId
|
|
|
|
,Tantargy.C_NEV TantargyNev
|
|
|
|
,TanuloErtekeles.ID ID
|
|
,TanuloErtekeles.C_DATUM Datum
|
|
,TanuloErtekeles.C_ROGZITESDATUM RogzitesDatum
|
|
,TanuloErtekeles.C_TIPUSID TipusId
|
|
,FelhasznaloErtekelo.C_NYOMTATASINEV ErtekeloNyomtatasiNev
|
|
,IIF(TanuloErtekeles.ID IS NULL,
|
|
NULL,
|
|
CASE
|
|
WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId
|
|
THEN 'T'
|
|
ELSE 'F'
|
|
END
|
|
) Modosithato
|
|
,TanuloErtekeles.CREATED Created
|
|
,TanuloErtekeles.C_ISMAGATARTASSZORGALOM IsMagatartasSzorgalom
|
|
,TanuloErtekeles.C_ISERTESITESELKULDVE IsErtesitesElkuldve
|
|
|
|
,TanuloErtekeles.C_ERTEKELESOSZTALYZATID ErtekelesOsztalyzatId
|
|
,em.C_SULY Suly
|
|
,TanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg
|
|
,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV ErtekelesSzovegRovidNev
|
|
,TanuloErtekeles.C_ERTEKELESSZAZALEK ErtekelesSzazalek
|
|
,TanuloErtekeles.C_ERTEKELESMODID ErtekelesModId
|
|
,TanuloErtekeles.C_ERTEKELESTEMA ErtekelesTema
|
|
|
|
,Tantargy.C_TARGYKATEGORIA TantargyKategoriaId
|
|
,Fotargy.ID FotargyId
|
|
,Fotargy.C_NEV FotargyNev
|
|
,Fotargy.C_TARGYKATEGORIA FotargyTantargyKategoriaId
|
|
,Tantargy.C_ISTANULMANYIATLAGBANEMSZAMIT IsTanulmanyiAtlagbaNemSzamit
|
|
FROM
|
|
#Tantargyak Tantargy
|
|
LEFT JOIN(
|
|
SELECT
|
|
TanuloErtekeles.*
|
|
FROM
|
|
T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
|
INNER JOIN
|
|
T_OSZTALYCSOPORT_OSSZES Osztaly ON
|
|
Osztaly.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
|
|
AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
|
|
AND Osztaly.TOROLT = 'F'
|
|
AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
|
|
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
|
|
AND Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId
|
|
INNER JOIN
|
|
T_TANULOCSOPORT_OSSZES TanuloCsoport ON
|
|
TanuloCsoport.C_TANEVID = TanuloErtekeles.C_TANEVID
|
|
AND TanuloCsoport.TOROLT = 'F'
|
|
AND TanuloCsoport.C_OSZTALYCSOPORTID = Osztaly.ID
|
|
AND TanuloCsoport.C_TANULOID = TanuloErtekeles.C_TANULOID
|
|
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
|
|
WHERE
|
|
TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId
|
|
AND TanuloErtekeles.C_TANEVID = @pTanevId
|
|
AND TanuloErtekeles.TOROLT = 'F'
|
|
AND TanuloErtekeles.C_TANULOID = @pTanuloId
|
|
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
|
|
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
TanuloErtekeles.*
|
|
FROM
|
|
T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
|
INNER JOIN
|
|
T_OSZTALYCSOPORT_OSSZES Osztaly ON
|
|
Osztaly.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
|
|
AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
|
|
AND Osztaly.TOROLT = 'F'
|
|
AND Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID
|
|
AND Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId
|
|
WHERE
|
|
TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId
|
|
AND TanuloErtekeles.C_TANEVID = @pTanevId
|
|
AND TanuloErtekeles.TOROLT = 'F'
|
|
AND TanuloErtekeles.C_TANULOID = @pTanuloId
|
|
AND @pFeladatKategoriaId = @pAmiKategoriaId
|
|
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
|
|
) AS TanuloErtekeles ON
|
|
TanuloErtekeles.C_TANTARGYID = Tantargy.ID
|
|
LEFT JOIN
|
|
T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON
|
|
FelhasznaloErtekelo.C_INTEZMENYID = Tantargy.C_INTEZMENYID
|
|
AND FelhasznaloErtekelo.C_TANEVID = Tantargy.C_TANEVID
|
|
AND FelhasznaloErtekelo.TOROLT = 'F'
|
|
AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
|
|
LEFT JOIN
|
|
T_ERTEKELESMOD_OSSZES em ON
|
|
em.C_ALINTEZMENYID = Tantargy.C_INTEZMENYID
|
|
AND em.C_ALTANEVID = Tantargy.C_TANEVID
|
|
AND em.TOROLT = 'F'
|
|
AND em.ID = TanuloErtekeles.C_ERTEKELESMODID
|
|
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
|
|
AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
|
|
LEFT JOIN
|
|
T_TANTARGY_OSSZES Fotargy ON
|
|
Fotargy.C_INTEZMENYID = Tantargy.C_INTEZMENYID
|
|
AND Fotargy.C_TANEVID = Tantargy.C_TANEVID
|
|
AND Fotargy.TOROLT = 'F'
|
|
AND Fotargy.ID = Tantargy.C_FOTARGYID
|
|
|
|
END
|
|
|
|
GO
|
|
|