130 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS uspGetBukasraAlloTanulok
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE uspGetBukasraAlloTanulok
 | 
						|
	 @pIntezmenyId			int
 | 
						|
	,@pTanevId				int
 | 
						|
	,@pOsztalyCsoportIdXML	XML = NULL
 | 
						|
	
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
 | 
						|
DECLARE @ocsId int
 | 
						|
 | 
						|
DECLARE @OsztalyCsoport TABLE(Id int)
 | 
						|
 | 
						|
IF @pOsztalyCsoportIdXML IS NOT NULL
 | 
						|
BEGIN
 | 
						|
	DECLARE @ValasztottOsztalyok TABLE(Id int)
 | 
						|
	INSERT INTO @ValasztottOsztalyok(Id)
 | 
						|
    SELECT Data FROM fnConvertXmlIntListToTable(@pOsztalyCsoportIdXML, 'a', 'b')
 | 
						|
   
 | 
						|
    INSERT INTO @OsztalyCsoport
 | 
						|
    SELECT Id
 | 
						|
    FROM @ValasztottOsztalyok 
 | 
						|
END
 | 
						|
ELSE BEGIN
 | 
						|
	INSERT INTO @OsztalyCsoport
 | 
						|
    SELECT osztalyok.OsztalyId FROM  fnGetDokumentumOsztalyokTanevenkent (@pTanevId) osztalyok
 | 
						|
END
 | 
						|
 | 
						|
DECLARE ocsCur CURSOR FOR 
 | 
						|
	SELECT Id FROM @OsztalyCsoport
 | 
						|
 | 
						|
CREATE TABLE #ErtekelesTemp 
 | 
						|
(
 | 
						|
	 [OMKod]					NVARCHAR(MAX)
 | 
						|
	,[SzulHelyIdoAnyjaNeve]		NVARCHAR(MAX)
 | 
						|
	,[TanuloNev]				NVARCHAR(MAX)
 | 
						|
	,[OsztalyCsoportNev]		NVARCHAR(MAX)
 | 
						|
	,[TantargyNev]				NVARCHAR(MAX)
 | 
						|
	,[Atlag]					DECIMAL(10,2)
 | 
						|
	,[TanarNeve]				NVARCHAR(MAX)
 | 
						|
)
 | 
						|
CREATE TABLE #CsoportNevek (OsztalyCsoportNeve nvarchar(200))		 
 | 
						|
 | 
						|
OPEN ocsCur
 | 
						|
FETCH NEXT FROM ocsCur INTO @ocsId
 | 
						|
 | 
						|
WHILE @@FETCH_STATUS = 0
 | 
						|
BEGIN
 | 
						|
	TRUNCATE TABLE #ErtekelesTemp
 | 
						|
	INSERT INTO #ErtekelesTemp 
 | 
						|
	(
 | 
						|
		 [OMKod]
 | 
						|
		,[SzulHelyIdoAnyjaNeve]
 | 
						|
		,[TanuloNev]
 | 
						|
		,[OsztalyCsoportNev]
 | 
						|
		,[TantargyNev]
 | 
						|
		,[Atlag]
 | 
						|
		,[TanarNeve]
 | 
						|
	 )
 | 
						|
	SELECT
 | 
						|
		 tanulo.C_OKTATASIAZONOSITO		AS OMKod
 | 
						|
		,tanulo.C_SZULETESIHELY + ', ' + CAST(FORMAT(tanulo.C_SZULETESIDATUM, 'yyyy.MM.dd.') AS nvarchar(200)) + ', '+ tanulo.C_ANYJANEVE AS SzulHelyIdoAnyjaNeve
 | 
						|
		,tanulo.C_NYOMTATASINEV			AS TanuloNev
 | 
						|
		,osztalyCsoport.C_NEV			AS OsztalyCsoportNev
 | 
						|
		,ertekeles.TantargyNev			AS TantargyNev
 | 
						|
		,ROUND(SUM(CAST(ertekeles.ErtekelesOsztalyzatValue AS FLOAT) * CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100), 2) AS Atlag
 | 
						|
		,tanar.C_NYOMTATASINEV			AS TanarNeve
 | 
						|
	FROM 
 | 
						|
		[fnGetDokumentumErtekelesekOsztalyonkent] (@pTanevId, @ocsId, DEFAULT, DEFAULT, 1, DEFAULT) ertekeles
 | 
						|
	LEFT JOIN T_TANARIATLAGSULY tanariAtlagSuly ON 
 | 
						|
			tanariAtlagSuly.C_TANEVID = @pTanevId
 | 
						|
		AND tanariAtlagSuly.TOROLT = 'F' 
 | 
						|
		AND tanariAtlagSuly.C_ERTEKELESMODID = ertekeles.ErtekelesModjaId 
 | 
						|
	INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON 
 | 
						|
			osztalyCsoport.C_TANEVID = @pTanevId
 | 
						|
		AND osztalyCsoport.TOROLT = 'F' 
 | 
						|
		AND osztalyCsoport.ID = ertekeles.OsztalyCsoportId
 | 
						|
	INNER JOIN T_FELHASZNALO_OSSZES tanulo ON
 | 
						|
			tanulo.C_TANEVID = @pTanevId
 | 
						|
		AND tanulo.TOROLT = 'F'
 | 
						|
		AND tanulo.ID = ertekeles.TanuloId		 
 | 
						|
	INNER JOIN T_FELHASZNALO_OSSZES tanar ON
 | 
						|
			tanar.C_TANEVID = @pTanevId
 | 
						|
		AND tanar.TOROLT = 'F' 
 | 
						|
		AND	tanar.ID = ertekeles.ErtekeloId
 | 
						|
	WHERE
 | 
						|
		ertekeles.ErtekelesOsztalyzatValue IS NOT NULL
 | 
						|
	GROUP BY
 | 
						|
		 tanulo.C_OKTATASIAZONOSITO
 | 
						|
		,tanulo.C_SZULETESIHELY 
 | 
						|
		,tanulo.C_SZULETESIDATUM
 | 
						|
		,tanulo.C_ANYJANEVE
 | 
						|
		,tanulo.C_NYOMTATASINEV
 | 
						|
		,osztalyCsoport.C_NEV
 | 
						|
		,ertekeles.TantargyNev
 | 
						|
		,tanar.C_NYOMTATASINEV
 | 
						|
	HAVING 
 | 
						|
		ROUND(SUM(CAST(ertekeles.ErtekelesOsztalyzatValue AS FLOAT) * CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100), 2) < 2
 | 
						|
 | 
						|
	IF EXISTS(SELECT 1 FROM #ErtekelesTemp)
 | 
						|
	BEGIN
 | 
						|
		SELECT 
 | 
						|
			 tmp.OMKod
 | 
						|
			,tmp.SzulHelyIdoAnyjaNeve
 | 
						|
			,tmp.TanuloNev
 | 
						|
			,tmp.OsztalyCsoportNev
 | 
						|
			,tmp.TantargyNev
 | 
						|
			,tmp.Atlag
 | 
						|
			,tmp.TanarNeve
 | 
						|
		FROM #ErtekelesTemp tmp ORDER BY [TanuloNev],[TantargyNev]
 | 
						|
 | 
						|
		INSERT INTO #CsoportNevek (OsztalyCsoportNeve)
 | 
						|
		SELECT top 1 [OsztalyCsoportNev] FROM #ErtekelesTemp 
 | 
						|
	END
 | 
						|
	
 | 
						|
	FETCH NEXT FROM ocsCur INTO @ocsId	
 | 
						|
END
 | 
						|
 | 
						|
CLOSE ocsCur
 | 
						|
DEALLOCATE ocsCur
 | 
						|
 | 
						|
SELECT * FROM #CsoportNevek
 | 
						|
 | 
						|
DROP TABLE #ErtekelesTemp
 | 
						|
DROP TABLE #CsoportNevek
 | 
						|
 | 
						|
END
 | 
						|
GO |