242 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			242 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
-- =============================================
 | 
						|
-- Description:	<Előszedjük a tanuló értékeléseket főtárgy/altárgy alapján>
 | 
						|
-- =============================================
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
DROP PROCEDURE IF EXISTS [dbo].[uspGetTanuloErtekelesDataSetByFotargyAltargy]
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[uspGetTanuloErtekelesDataSetByFotargyAltargy]
 | 
						|
	 @pIntezmenyId		INT
 | 
						|
	,@pTanevId			INT
 | 
						|
	,@pTanarId			INT
 | 
						|
	,@pTanuloId			INT
 | 
						|
	,@pFotargyAltargyId	INT
 | 
						|
	,@pDatum			DATE = NULL
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
 | 
						|
	-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
 | 
						|
	SET NOCOUNT ON;
 | 
						|
	
 | 
						|
	IF @pDatum IS NULL
 | 
						|
		SET @pDatum = CONVERT(DATE, GETDATE())
 | 
						|
 | 
						|
	DECLARE @evfolyamTipusId INT = (SELECT EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(@pTanuloId, @pDatum))
 | 
						|
		
 | 
						|
	CREATE TABLE #KapcsopodoTantargyak(
 | 
						|
  		 ID					INT
 | 
						|
		,C_FOTARGYID		INT
 | 
						|
		,C_NEV				NVARCHAR(255)
 | 
						|
		,C_TARGYKATEGORIA 	INT
 | 
						|
		,C_INTEZMENYID	 	INT
 | 
						|
		,C_TANEVID 			INT
 | 
						|
	)
 | 
						|
	INSERT INTO 
 | 
						|
		#KapcsopodoTantargyak
 | 
						|
	SELECT *
 | 
						|
	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
 | 
						|
	WHERE 
 | 
						|
			TanuloCsoport.C_INTEZMENYID			= @pIntezmenyId
 | 
						|
		AND TanuloCsoport.C_TANEVID				= @pTanevId
 | 
						|
		AND TanuloCsoport.TOROLT				= 'F'
 | 
						|
		AND TanuloCsoport.C_TANULOID			= @pTanuloId
 | 
						|
		AND	TanuloCsoport.C_BELEPESDATUM <= GETDATE()
 | 
						|
		AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= GETDATE())
 | 
						|
 | 
						|
	CREATE TABLE #Tantargyak(
 | 
						|
  		 ID					INT
 | 
						|
		,C_FOTARGYID		INT
 | 
						|
		,C_NEV				NVARCHAR(255)
 | 
						|
		,C_TARGYKATEGORIA 	INT
 | 
						|
		,C_INTEZMENYID	 	INT
 | 
						|
		,C_TANEVID 			INT
 | 
						|
	);			
 | 
						|
	WITH tantargy_CTE (C_TANTARGYID, C_FOTARGYID, C_INTEZMENYID, C_TANEVID)  
 | 
						|
	AS (  
 | 
						|
		SELECT 
 | 
						|
			Foglalkozas.C_TANTARGYID,
 | 
						|
			Tantargy.C_FOTARGYID,
 | 
						|
			Tantargy.C_INTEZMENYID,
 | 
						|
			Tantargy.C_TANEVID
 | 
						|
		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 
 | 
						|
			OrarendiOra.C_TANTARGYID,
 | 
						|
			Tantargy.C_FOTARGYID,
 | 
						|
			Tantargy.C_INTEZMENYID,
 | 
						|
			Tantargy.C_TANEVID
 | 
						|
		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
 | 
						|
			TanuloErtekeles.C_TANTARGYID,
 | 
						|
			Tantargy.C_FOTARGYID,
 | 
						|
			Tantargy.C_INTEZMENYID,
 | 
						|
			Tantargy.C_TANEVID
 | 
						|
		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
 | 
						|
		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 
 | 
						|
	)  
 | 
						|
	INSERT INTO 
 | 
						|
		#Tantargyak (ID, C_FOTARGYID, C_NEV, C_TARGYKATEGORIA, C_INTEZMENYID, C_TANEVID)
 | 
						|
	SELECT DISTINCT
 | 
						|
		KapcsopodoTantargy.ID,
 | 
						|
		KapcsopodoTantargy.C_FOTARGYID,
 | 
						|
		KapcsopodoTantargy.C_NEV,
 | 
						|
		KapcsopodoTantargy.C_TARGYKATEGORIA,
 | 
						|
		KapcsopodoTantargy.C_INTEZMENYID,
 | 
						|
		KapcsopodoTantargy.C_TANEVID
 | 
						|
	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)
 | 
						|
 | 
						|
	SELECT
 | 
						|
		 TanuloErtekeles.C_TANULOID												TanuloId
 | 
						|
		,Tantargy.ID															TantargyId
 | 
						|
 | 
						|
		,Tantargy.C_NEV															TantargyNev
 | 
						|
 | 
						|
		,TanuloErtekeles.ID														ID
 | 
						|
		,TanuloErtekeles.C_DATUM												Datum
 | 
						|
		,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.C_ISMAGATARTASSZORGALOM								IsMagatartasSzorgalom
 | 
						|
 | 
						|
		,TanuloErtekeles.C_ERTEKELESOSZTALYZATID								ErtekelesOsztalyzatId
 | 
						|
		,TanariAtlagSuly.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
 | 
						|
	FROM 
 | 
						|
		#Tantargyak Tantargy
 | 
						|
	LEFT JOIN 
 | 
						|
		T_TANULOERTEKELES_OSSZES TanuloErtekeles ON			
 | 
						|
				TanuloErtekeles.C_INTEZMENYID			= Tantargy.C_INTEZMENYID
 | 
						|
			AND TanuloErtekeles.C_TANEVID				= Tantargy.C_TANEVID
 | 
						|
			AND TanuloErtekeles.TOROLT					= 'F'
 | 
						|
			AND TanuloErtekeles.C_TANTARGYID			= Tantargy.ID
 | 
						|
			AND TanuloErtekeles.C_TANULOID				= @pTanuloId
 | 
						|
	LEFT JOIN 
 | 
						|
		T_OSZTALYCSOPORT_OSSZES Osztaly ON
 | 
						|
				Osztaly.C_INTEZMENYID					= Tantargy.C_INTEZMENYID
 | 
						|
			AND Osztaly.C_TANEVID						= Tantargy.C_TANEVID
 | 
						|
			AND Osztaly.TOROLT							= 'F'
 | 
						|
			AND Osztaly.ID								= TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
 | 
						|
			AND	Osztaly.C_EVFOLYAMTIPUSA				= @evfolyamTipusId
 | 
						|
	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_TANARIATLAGSULY_OSSZES TanariAtlagSuly ON
 | 
						|
				TanariAtlagSuly.C_INTEZMENYID			= Tantargy.C_INTEZMENYID
 | 
						|
			AND TanariAtlagSuly.C_TANEVID				= Tantargy.C_TANEVID
 | 
						|
			AND TanariAtlagSuly.TOROLT					= 'F'
 | 
						|
			AND	TanariAtlagSuly.C_ERTEKELESMODID		= 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
 | 
						|
 |