460 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			460 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
IF OBJECT_ID('[dbo].[sp_GenerateErtekelesekTempTablaByTanulo]') IS NOT NULL
 | 
						|
BEGIN
 | 
						|
	DROP PROCEDURE [dbo].[sp_GenerateErtekelesekTempTablaByTanulo]
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
-- =============================================
 | 
						|
-- Description:	<Előszedi a tanulú értékeléseket, havi bontásban tanuló alapján>
 | 
						|
-- NOTE: EZT A HÁROM TÁROLT ELJÁRÁST EGYBEN KELL KEZELNI, HA MÓDOSÍTJUK!!!	
 | 
						|
--		-	sp_GenerateErtekelesekTempTabla
 | 
						|
--		-	sp_GenerateErtekelesekMagatartasSzorgalomTempTabla
 | 
						|
--		-	sp_GenerateErtekelesekTempTablaByTanulo
 | 
						|
-- =============================================
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[sp_GenerateErtekelesekTempTablaByTanulo]
 | 
						|
	 @pTanuloId					INT
 | 
						|
	,@pFotargyAltargyId			INT = NULL
 | 
						|
	,@pFelevVegeDatum			DATE
 | 
						|
	,@pErtekelesTipusEvkozi		INT
 | 
						|
	,@pErtekelesTipusFelevi		INT
 | 
						|
	,@pErtekelesTipusEvvegi		INT
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
 | 
						|
	-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
 | 
						|
	SET NOCOUNT ON;
 | 
						|
 | 
						|
	DECLARE @TempDictionaryItem TABLE (
 | 
						|
		 ID				INT PRIMARY KEY
 | 
						|
		,C_VALUE		INT
 | 
						|
		,C_ORDER		INT
 | 
						|
		,C_INTEZMENYID	INT
 | 
						|
		,C_TANEVID		INT
 | 
						|
	)
 | 
						|
				  
 | 
						|
	INSERT INTO @TempDictionaryItem
 | 
						|
	SELECT
 | 
						|
		 ID
 | 
						|
		,C_VALUE
 | 
						|
		,C_ORDER
 | 
						|
		,C_INTEZMENYID
 | 
						|
		,C_TANEVID
 | 
						|
	FROM 
 | 
						|
		T_DICTIONARYITEMBASE 
 | 
						|
	WHERE 
 | 
						|
			C_TYPE IN ('OsztalyzatTipus', 'MagatartasErtekelesTipus', 'SzorgalomErtekelesTipus', 'TargyKategoriaTipus')
 | 
						|
		AND TOROLT = 'F'
 | 
						|
		
 | 
						|
	DECLARE @OsztalyCsoportIdList TABLE (
 | 
						|
  		 ID	INT PRIMARY KEY
 | 
						|
	)
 | 
						|
 | 
						|
	INSERT INTO @OsztalyCsoportIdList (ID)
 | 
						|
  	SELECT C_OSZTALYCSOPORTID ID
 | 
						|
	FROM T_TANULOCSOPORT 
 | 
						|
	WHERE 
 | 
						|
			C_BELEPESDATUM <= GETDATE()
 | 
						|
		AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM >= GETDATE())
 | 
						|
		AND TOROLT = 'F'
 | 
						|
		AND C_TANULOID = @pTanuloId
 | 
						|
 | 
						|
	DECLARE @Tantargyak TABLE (
 | 
						|
  		 ID					INT PRIMARY KEY
 | 
						|
		,C_FOTARGYID		INT
 | 
						|
		,C_NEV				NVARCHAR(255)
 | 
						|
		,C_TARGYKATEGORIA 	INT
 | 
						|
	);
 | 
						|
			
 | 
						|
	WITH tantargy_CTE (C_TANTARGYID, C_FOTARGYID)  
 | 
						|
	AS (  
 | 
						|
		SELECT foglalkozas.C_TANTARGYID, tantargy.C_FOTARGYID
 | 
						|
		FROM T_FOGLALKOZAS foglalkozas
 | 
						|
		INNER JOIN T_TANTARGY tantargy ON tantargy.ID = foglalkozas.C_TANTARGYID 
 | 
						|
		WHERE 
 | 
						|
				foglalkozas.C_OSZTALYCSOPORTID IN (SELECT ID FROM @OsztalyCsoportIdList)
 | 
						|
			AND foglalkozas.TOROLT = 'F'
 | 
						|
		UNION
 | 
						|
		SELECT orarendiOra.C_TANTARGYID, tantargy.C_FOTARGYID
 | 
						|
		FROM T_ORARENDIORA orarendiOra
 | 
						|
		INNER JOIN T_TANTARGY tantargy ON tantargy.ID = orarendiOra.C_TANTARGYID 
 | 
						|
		WHERE 
 | 
						|
				orarendiOra.C_OSZTALYCSOPORTID IN (SELECT ID FROM @OsztalyCsoportIdList)
 | 
						|
			AND orarendiOra.TOROLT = 'F'
 | 
						|
		UNION
 | 
						|
		SELECT tanuloErtekeles.C_TANTARGYID, tantargy.C_FOTARGYID
 | 
						|
		FROM T_TANULOERTEKELES tanuloErtekeles
 | 
						|
		INNER JOIN T_TANTARGY tantargy ON tantargy.ID = tanuloErtekeles.C_TANTARGYID 
 | 
						|
		LEFT JOIN T_OSZTALYCSOPORT Osztaly ON
 | 
						|
				Osztaly.ID					= tanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
 | 
						|
			AND	Osztaly.TOROLT				= 'F'
 | 
						|
			AND Osztaly.C_EVFOLYAMTIPUSA	= (SELECT EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(tanuloErtekeles.C_TANULOID))
 | 
						|
		WHERE 
 | 
						|
				tanuloErtekeles.C_TANULOID = @pTanuloId 
 | 
						|
			AND tanuloErtekeles.C_TANTARGYID IS NOT NULL 
 | 
						|
			AND tanuloErtekeles.TOROLT = 'F'
 | 
						|
	)
 | 
						|
  
 | 
						|
	INSERT INTO @Tantargyak (ID, C_FOTARGYID, C_NEV, C_TARGYKATEGORIA)
 | 
						|
	SELECT DISTINCT kapcsopodoTantargy.ID, kapcsopodoTantargy.C_FOTARGYID, kapcsopodoTantargy.C_NEV, kapcsopodoTantargy.C_TARGYKATEGORIA 
 | 
						|
	FROM tantargy_CTE
 | 
						|
	INNER JOIN fnGetKapcsolodoTantargyak(@pFotargyAltargyId) kapcsopodoTantargy ON tantargy_CTE.C_TANTARGYID = kapcsopodoTantargy.ID OR tantargy_CTE.C_FOTARGYID = kapcsopodoTantargy.ID
 | 
						|
	WHERE (kapcsopodoTantargy.ID <> @pFotargyAltargyId OR @pFotargyAltargyId IS NULL)
 | 
						|
 | 
						|
	DECLARE @TempTanuloErtekeles TABLE (
 | 
						|
		 ID							INT
 | 
						|
		,Datum						NVARCHAR(255)
 | 
						|
		,TipusId					INT
 | 
						|
		,TanuloId					INT
 | 
						|
		,TantargyId					INT
 | 
						|
		,TantargyNev				NVARCHAR(255)
 | 
						|
		,TantargyKategoria			INT
 | 
						|
		,FotargyId					INT
 | 
						|
		,Honap						NVARCHAR(2)
 | 
						|
		,ErtekelesOsztalyzat		INT
 | 
						|
		,ErtekelesSzoveg			NVARCHAR(MAX)
 | 
						|
		,ErtekelesSzovegRovidNev	NVARCHAR(3)
 | 
						|
		,ErtekelesSzazalek			INT
 | 
						|
		,MagatartasOsztalyzat		INT
 | 
						|
		,MagatartasSzoveg			NVARCHAR(MAX)
 | 
						|
		,MagatartasSzovegRovidNev	NVARCHAR(3)
 | 
						|
		,MagatartasErtek			INT
 | 
						|
		,SzorgalomOsztalyzat		INT
 | 
						|
		,SzorgalomSzoveg			NVARCHAR(MAX)
 | 
						|
		,SzorgalomSzovegRovidNev	NVARCHAR(3)
 | 
						|
		,SzorgalomErtek				INT
 | 
						|
		,Suly						INT
 | 
						|
	)
 | 
						|
 | 
						|
	INSERT INTO @TempTanuloErtekeles (
 | 
						|
		 ID
 | 
						|
		,Datum
 | 
						|
		,TipusId
 | 
						|
		,TanuloId
 | 
						|
		,TantargyId
 | 
						|
		,TantargyNev
 | 
						|
		,TantargyKategoria
 | 
						|
		,FotargyId
 | 
						|
		,Honap
 | 
						|
		,ErtekelesOsztalyzat
 | 
						|
		,ErtekelesSzoveg
 | 
						|
		,ErtekelesSzovegRovidNev
 | 
						|
		,ErtekelesSzazalek
 | 
						|
		,MagatartasOsztalyzat
 | 
						|
		,MagatartasSzoveg
 | 
						|
		,MagatartasSzovegRovidNev
 | 
						|
		,MagatartasErtek
 | 
						|
		,SzorgalomOsztalyzat
 | 
						|
		,SzorgalomSzoveg
 | 
						|
		,SzorgalomSzovegRovidNev
 | 
						|
		,SzorgalomErtek
 | 
						|
		,Suly
 | 
						|
	)	
 | 
						|
	SELECT DISTINCT *
 | 
						|
	FROM (
 | 
						|
		SELECT DISTINCT
 | 
						|
    		 tanuloErtekeles.ID							ID
 | 
						|
			,tanuloErtekeles.C_DATUM					Datum
 | 
						|
			,tanuloErtekeles.C_TIPUSID					TipusId
 | 
						|
			,@pTanuloId									TanuloId
 | 
						|
			,tantargy.ID								TantargyId
 | 
						|
			,tantargy.C_NEV								TantargyNev
 | 
						|
			,tantargyKategoria.C_ORDER					TantargyKategoria
 | 
						|
			,tantargy.C_FOTARGYID						FotargyId
 | 
						|
			,CASE WHEN tanuloErtekeles.C_TIPUSID = @pErtekelesTipusFelevi 
 | 
						|
					THEN 'I'
 | 
						|
				WHEN tanuloErtekeles.C_TIPUSID = @pErtekelesTipusEvvegi 
 | 
						|
					THEN 'II'
 | 
						|
				ELSE					
 | 
						|
					CASE 
 | 
						|
						WHEN CAST(tanuloErtekeles.C_DATUM AS DATE) > @pFelevVegeDatum
 | 
						|
							THEN CAST(MONTH(tanuloErtekeles.C_DATUM) + 1 AS NVARCHAR(2))
 | 
						|
							ELSE CAST(MONTH(tanuloErtekeles.C_DATUM) AS NVARCHAR(2))
 | 
						|
					END 
 | 
						|
				END										Honap
 | 
						|
			,ertekelesOsztalyzat.C_VALUE				ErtekelesOsztalyzat
 | 
						|
			,tanuloErtekeles.C_ERTEKELESSZOVEG			ErtekelesSzoveg
 | 
						|
			,tanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV	ErtekelesSzovegRovidNev
 | 
						|
			,tanuloErtekeles.C_ERTEKELESSZAZALEK		ErtekelesSzazalek
 | 
						|
			,NULL										MagatartasOsztalyzat
 | 
						|
  			,NULL										MagatartasSzoveg	
 | 
						|
  			,NULL										MagatartasSzovegRovidNev
 | 
						|
  			,NULL										MagatartasErtek
 | 
						|
  			,NULL										SzorgalomOsztalyzat
 | 
						|
  			,NULL										SzorgalomSzoveg	
 | 
						|
  			,NULL										SzorgalomSzovegRovidNev
 | 
						|
  			,NULL										SzorgalomErtek	
 | 
						|
			,tanariAtlagSuly.C_SULY						Suly
 | 
						|
		FROM 
 | 
						|
			@Tantargyak AS tantargy
 | 
						|
		LEFT JOIN (
 | 
						|
			SELECT
 | 
						|
				 TanuloErtekeles.ID
 | 
						|
				,TanuloErtekeles.C_DATUM
 | 
						|
				,TanuloErtekeles.C_TIPUSID
 | 
						|
				,TanuloErtekeles.C_TANULOID
 | 
						|
				,TanuloErtekeles.C_TANTARGYID
 | 
						|
				,TanuloErtekeles.C_OSZTALYCSOPORTID
 | 
						|
				,TanuloErtekeles.C_ERTEKELESOSZTALYZATID
 | 
						|
				,TanuloErtekeles.C_ERTEKELESSZOVEG
 | 
						|
				,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV
 | 
						|
				,TanuloErtekeles.C_ERTEKELESSZAZALEK
 | 
						|
				,TanuloErtekeles.C_ERTEKELESMODID
 | 
						|
			FROM
 | 
						|
				T_TANULOERTEKELES TanuloErtekeles
 | 
						|
			INNER JOIN T_OSZTALYCSOPORT Osztaly ON
 | 
						|
					Osztaly.ID					= TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
 | 
						|
				AND	Osztaly.TOROLT				= 'F'
 | 
						|
				AND Osztaly.C_EVFOLYAMTIPUSA	= (SELECT EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(TanuloErtekeles.C_TANULOID))
 | 
						|
			WHERE
 | 
						|
					TanuloErtekeles.TOROLT = 'F'
 | 
						|
				AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
 | 
						|
		) AS tanuloErtekeles ON
 | 
						|
				tanuloErtekeles.C_TANULOID = @pTanuloId
 | 
						|
			AND tanuloErtekeles.C_TANTARGYID = tantargy.ID
 | 
						|
		LEFT JOIN @TempDictionaryItem AS ertekelesOsztalyzat ON ertekelesOsztalyzat.ID = tanuloErtekeles.C_ERTEKELESOSZTALYZATID
 | 
						|
		LEFT JOIN @TempDictionaryItem AS tantargyKategoria ON tantargyKategoria.ID = tantargy.C_TARGYKATEGORIA
 | 
						|
		LEFT JOIN 
 | 
						|
			T_TANARIATLAGSULY tanariAtlagSuly ON  
 | 
						|
					tanariAtlagSuly.C_ERTEKELESMODID = tanuloErtekeles.C_ERTEKELESMODID 
 | 
						|
				AND tanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
 | 
						|
				AND tanariAtlagSuly.TOROLT = 'F'
 | 
						|
    ) AS temp  
 | 
						|
   
 | 
						|
	IF @pFotargyAltargyId IS NULL BEGIN	
 | 
						|
 | 
						|
		DECLARE @MagatartasSzorgalom TABLE (
 | 
						|
			C_NEV	NVARCHAR(255)
 | 
						|
		);
 | 
						|
 | 
						|
		INSERT INTO @MagatartasSzorgalom (C_NEV) 
 | 
						|
		SELECT 'Magatartás/Szorgalom'
 | 
						|
  
 | 
						|
   		INSERT INTO @TempTanuloErtekeles (
 | 
						|
			 ID
 | 
						|
			,Datum
 | 
						|
			,TipusId
 | 
						|
			,TanuloId
 | 
						|
			,TantargyId
 | 
						|
			,TantargyNev
 | 
						|
			,TantargyKategoria
 | 
						|
			,FotargyId
 | 
						|
			,Honap
 | 
						|
			,ErtekelesOsztalyzat
 | 
						|
			,ErtekelesSzoveg
 | 
						|
			,ErtekelesSzovegRovidNev
 | 
						|
			,ErtekelesSzazalek
 | 
						|
			,MagatartasOsztalyzat
 | 
						|
			,MagatartasSzoveg
 | 
						|
			,MagatartasSzovegRovidNev
 | 
						|
			,MagatartasErtek
 | 
						|
			,SzorgalomOsztalyzat
 | 
						|
			,SzorgalomSzoveg
 | 
						|
			,SzorgalomSzovegRovidNev
 | 
						|
			,SzorgalomErtek
 | 
						|
			,Suly
 | 
						|
		)	 
 | 
						|
  		SELECT DISTINCT
 | 
						|
      		 tanuloErtekeles.ID							ID
 | 
						|
  			,tanuloErtekeles.C_DATUM					Datum
 | 
						|
  			,tanuloErtekeles.C_TIPUSID					TipusId
 | 
						|
  			,@pTanuloId									TanuloId
 | 
						|
  			,0											TantargyId
 | 
						|
  			,magatartasSzorgalom.C_NEV					TantargyNev
 | 
						|
  			,0											TantargyKategoria
 | 
						|
  			,NULL										FotargyId    
 | 
						|
  			,CASE WHEN tanuloErtekeles.C_TIPUSID = @pErtekelesTipusFelevi 
 | 
						|
  					THEN 'I'
 | 
						|
  				WHEN tanuloErtekeles.C_TIPUSID = @pErtekelesTipusEvvegi 
 | 
						|
  					THEN 'II'
 | 
						|
  				ELSE					
 | 
						|
  					CASE 
 | 
						|
  						WHEN CAST(tanuloErtekeles.C_DATUM AS DATE) > @pFelevVegeDatum
 | 
						|
  							THEN CAST(MONTH(tanuloErtekeles.C_DATUM) + 1 AS NVARCHAR(2))
 | 
						|
  							ELSE CAST(MONTH(tanuloErtekeles.C_DATUM) AS NVARCHAR(2))
 | 
						|
  					END 
 | 
						|
  				END										Honap
 | 
						|
  			,NULL										ErtekelesOsztalyzat
 | 
						|
  			,NULL										ErtekelesSzoveg
 | 
						|
  			,NULL										ErtekelesSzovegRovidNev
 | 
						|
  			,NULL										ErtekelesSzazalek
 | 
						|
  			,magatartasOsztalyzat.C_VALUE				MagatartasOsztalyzat
 | 
						|
    		,tanuloErtekeles.C_MAGATARTASSZOVEG			MagatartasSzoveg	
 | 
						|
    		,tanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV	MagatartasSzovegRovidNev
 | 
						|
    		,magatartasErtek.C_VALUE					MagatartasErtek
 | 
						|
    		,szorgalomOsztalyzat.C_VALUE				SzorgalomOsztalyzat
 | 
						|
    		,tanuloErtekeles.C_SZORGALOMSZOVEG			SzorgalomSzoveg	
 | 
						|
    		,tanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV	SzorgalomSzovegRovidNev
 | 
						|
    		,szorgalomErtek.C_VALUE						SzorgalomErtek	
 | 
						|
			,100										Suly
 | 
						|
		FROM 
 | 
						|
			@MagatartasSzorgalom magatartasSzorgalom
 | 
						|
		LEFT JOIN (
 | 
						|
			SELECT
 | 
						|
				 TanuloErtekeles.ID
 | 
						|
				,TanuloErtekeles.C_DATUM
 | 
						|
				,TanuloErtekeles.C_TIPUSID
 | 
						|
				,TanuloErtekeles.C_TANULOID
 | 
						|
				,TanuloErtekeles.C_OSZTALYCSOPORTID
 | 
						|
				,TanuloErtekeles.C_TANTARGYID
 | 
						|
				,TanuloErtekeles.C_MAGATARTASOSZTALYZATID
 | 
						|
				,TanuloErtekeles.C_MAGATARTASSZOVEG
 | 
						|
				,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV
 | 
						|
				,TanuloErtekeles.C_MAGATARTASERTEKID
 | 
						|
				,TanuloErtekeles.C_SZORGALOMOSZTALYZATID
 | 
						|
				,TanuloErtekeles.C_SZORGALOMSZOVEG
 | 
						|
				,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV
 | 
						|
				,TanuloErtekeles.C_SZORGALOMERTEKID
 | 
						|
			FROM
 | 
						|
				T_TANULOERTEKELES TanuloErtekeles
 | 
						|
			INNER JOIN T_OSZTALYCSOPORT Osztaly ON
 | 
						|
					Osztaly.ID					= TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
 | 
						|
				AND	Osztaly.TOROLT				= 'F'
 | 
						|
				AND Osztaly.C_EVFOLYAMTIPUSA	= (SELECT EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(TanuloErtekeles.C_TANULOID))
 | 
						|
			WHERE
 | 
						|
					TanuloErtekeles.TOROLT = 'F'
 | 
						|
				AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T'
 | 
						|
		) AS tanuloErtekeles ON
 | 
						|
				tanuloErtekeles.C_TANULOID = @pTanuloId
 | 
						|
			AND tanuloErtekeles.C_TANTARGYID IS NULL
 | 
						|
  		LEFT JOIN @TempDictionaryItem AS magatartasOsztalyzat ON magatartasOsztalyzat.ID = tanuloErtekeles.C_MAGATARTASOSZTALYZATID
 | 
						|
  		LEFT JOIN @TempDictionaryItem AS szorgalomOsztalyzat ON szorgalomOsztalyzat.ID = tanuloErtekeles.C_SZORGALOMOSZTALYZATID
 | 
						|
  		LEFT JOIN @TempDictionaryItem AS magatartasErtek ON magatartasErtek.ID = tanuloErtekeles.C_MAGATARTASERTEKID
 | 
						|
  		LEFT JOIN @TempDictionaryItem AS szorgalomErtek ON szorgalomErtek.ID = tanuloErtekeles.C_SZORGALOMERTEKID
 | 
						|
	END  
 | 
						|
 | 
						|
	SELECT
 | 
						|
		 result.ID
 | 
						|
		,result.TantargyId
 | 
						|
		,TantargyNev
 | 
						|
		,TantargyKategoria
 | 
						|
		,FotargyId
 | 
						|
		,TanuloId
 | 
						|
		,[09]
 | 
						|
		,[10]
 | 
						|
		,[11]
 | 
						|
		,[12]
 | 
						|
		,[01I]
 | 
						|
		,[01II]
 | 
						|
		,[02]
 | 
						|
		,[03]
 | 
						|
		,[04]
 | 
						|
		,[05] 
 | 
						|
		,[06]
 | 
						|
		,[I]
 | 
						|
		,[II]
 | 
						|
		,Atlag
 | 
						|
	FROM (
 | 
						|
		SELECT 
 | 
						|
			 pivotErtekelesek.TantargyId		ID
 | 
						|
			,pivotErtekelesek.TantargyId		TantargyId
 | 
						|
			,TantargyNev						TantargyNev
 | 
						|
			,pivotErtekelesek.TantargyKategoria	TantargyKategoria
 | 
						|
			,pivotErtekelesek.FotargyId			FotargyId
 | 
						|
			,pivotErtekelesek.TanuloId			TanuloId
 | 
						|
			,[9]								[09]
 | 
						|
			,[10]								[10]
 | 
						|
			,[11]								[11]
 | 
						|
			,[12]								[12]
 | 
						|
			,[1]								[01I]
 | 
						|
			,[2]								[01II]
 | 
						|
			,[3]								[02]
 | 
						|
			,[4]								[03]
 | 
						|
			,[5]								[04]
 | 
						|
			,[6]								[05]
 | 
						|
			,[7]								[06]
 | 
						|
			,[I]								[I]
 | 
						|
			,[II]								[II]
 | 
						|
			,atlag.Jegy							Atlag
 | 
						|
		FROM (
 | 
						|
			SELECT DISTINCT
 | 
						|
				 tempErtekeles1.TantargyId
 | 
						|
				,tempErtekeles1.TantargyNev
 | 
						|
				,tempErtekeles1.TantargyKategoria
 | 
						|
				,tempErtekeles1.FotargyId
 | 
						|
				,tempErtekeles1.TanuloId
 | 
						|
				,tempErtekeles1.Honap
 | 
						|
				,STUFF (
 | 
						|
					(SELECT 
 | 
						|
						','
 | 
						|
						+ ISNULL(CAST(tempErtekeles2.ErtekelesOsztalyzat AS VARCHAR(1)), '')
 | 
						|
						+ ISNULL(CAST(
 | 
						|
							CASE
 | 
						|
								WHEN tempErtekeles2.ErtekelesSzoveg IS NULL OR LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(tempErtekeles2.ErtekelesSzoveg, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''))) = ''
 | 
						|
									THEN NULL 
 | 
						|
								ELSE
 | 
						|
									ISNULL(tempErtekeles2.ErtekelesSzovegRovidNev, 'sz')
 | 
						|
							END AS VARCHAR(3)), '')
 | 
						|
						+ ISNULL(CAST(tempErtekeles2.ErtekelesSzazalek AS VARCHAR(3)), '')
 | 
						|
						+ ISNULL(CAST(tempErtekeles2.MagatartasOsztalyzat AS VARCHAR(1)), '') + ','
 | 
						|
						+ ISNULL(CAST(tempErtekeles2.SzorgalomOsztalyzat AS VARCHAR(1)), '')
 | 
						|
						+ ISNULL(CAST(
 | 
						|
							CASE
 | 
						|
								WHEN tempErtekeles2.MagatartasSzoveg IS NULL OR LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(tempErtekeles2.MagatartasSzoveg, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''))) = ''
 | 
						|
									THEN NULL
 | 
						|
								ELSE
 | 
						|
									ISNULL(tempErtekeles2.MagatartasSzovegRovidNev, 'sz')
 | 
						|
							END AS VARCHAR(3)), '') + ','
 | 
						|
						+  ISNULL(CAST(
 | 
						|
							CASE
 | 
						|
								WHEN tempErtekeles2.SzorgalomSzoveg IS NULL OR LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(tempErtekeles2.SzorgalomSzoveg, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''))) = ''
 | 
						|
									THEN NULL
 | 
						|
								ELSE
 | 
						|
									ISNULL(tempErtekeles2.SzorgalomSzovegRovidNev, 'sz')
 | 
						|
							END AS VARCHAR(3)), '')
 | 
						|
						+ ISNULL(CAST(tempErtekeles2.MagatartasErtek AS VARCHAR(1)), '') + ','
 | 
						|
						+ ISNULL(CAST(tempErtekeles2.SzorgalomErtek AS VARCHAR(1)), '')
 | 
						|
					FROM @TempTanuloErtekeles tempErtekeles2
 | 
						|
					WHERE tempErtekeles1.TantargyId = tempErtekeles2.TantargyId
 | 
						|
						AND tempErtekeles1.Honap = tempErtekeles2.Honap
 | 
						|
					FOR XML PATH ('')
 | 
						|
					), 1, 1, ''
 | 
						|
				) TanuloErtekelesList
 | 
						|
			FROM @TempTanuloErtekeles tempErtekeles1
 | 
						|
		) AS erdemjegyek
 | 
						|
		PIVOT (
 | 
						|
			MAX(TanuloErtekelesList) 
 | 
						|
			FOR Honap 
 | 
						|
			IN ([I], [II], [9] ,[10] ,[11] ,[12] ,[1] ,[2] ,[3] ,[4] ,[5] ,[6], [7])
 | 
						|
		) AS pivotErtekelesek         
 | 
						|
			LEFT JOIN (
 | 
						|
				SELECT 
 | 
						|
					 TantargyId		TantargyId
 | 
						|
					,ROUND (
 | 
						|
						SUM(CAST(ErtekelesOsztalyzat AS FLOAT) * CAST(ISNULL(Suly, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(Suly, 100) AS FLOAT) / 100), 2
 | 
						|
					 )				Jegy
 | 
						|
				FROM
 | 
						|
					@TempTanuloErtekeles
 | 
						|
				WHERE
 | 
						|
						TipusId = @pErtekelesTipusEvkozi
 | 
						|
					AND ErtekelesOsztalyzat IS NOT NULL
 | 
						|
				GROUP BY 
 | 
						|
					TantargyId
 | 
						|
			) AS atlag ON
 | 
						|
				pivotErtekelesek.TantargyId = atlag.TantargyId
 | 
						|
	) AS result
 | 
						|
	LEFT JOIN 
 | 
						|
		T_TANTARGY fotargy ON 
 | 
						|
		result.FotargyId = fotargy.ID
 | 
						|
	LEFT JOIN @TempDictionaryItem targykategoria 
 | 
						|
			ON	targykategoria.ID = fotargy.C_TARGYKATEGORIA 
 | 
						|
			AND targykategoria.C_INTEZMENYID = fotargy.C_INTEZMENYID 
 | 
						|
			AND targykategoria.C_TANEVID = fotargy.C_TANEVID
 | 
						|
	ORDER BY 
 | 
						|
		 CASE WHEN result.FotargyId IS NULL THEN ISNULL(result.TantargyKategoria, 10000) ELSE ISNULL(targykategoria.C_ORDER, 10000) END
 | 
						|
		,ISNULL(fotargy.C_NEV, result.TantargyNev)
 | 
						|
		,ISNULL(result.FotargyId, result.TantargyId)
 | 
						|
		,result.FotargyId
 | 
						|
		,result.TantargyNev
 | 
						|
	
 | 
						|
END
 | 
						|
 | 
						|
 | 
						|
GO
 | 
						|
 |