274 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			274 lines
		
	
	
		
			7.3 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
 | 
						|
	INSERT INTO @OsztalyCsoport(Id)
 | 
						|
    SELECT Data FROM fnConvertXmlIntListToTable(@pOsztalyCsoportIdXML, 'a', 'b')
 | 
						|
END
 | 
						|
ELSE BEGIN
 | 
						|
	INSERT INTO @OsztalyCsoport
 | 
						|
    SELECT osztalyok.OsztalyId FROM fnGetDokumentumOsztalyokTanevenkent (@pTanevId) osztalyok
 | 
						|
END
 | 
						|
 | 
						|
DECLARE ocsCur CURSOR FOR
 | 
						|
    SELECT DISTINCT k.ID FROM @OsztalyCsoport ocs
 | 
						|
    CROSS APPLY fnGetKapcsolodoOsztalycsoportok(ocs.ID) k
 | 
						|
 | 
						|
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))
 | 
						|
CREATE TABLE #OsszErtekeles
 | 
						|
(
 | 
						|
	ErtekelesId						INT NOT NULL,
 | 
						|
	Datum							DATE,
 | 
						|
	TipusId							INT,
 | 
						|
	ErtekelesSzoveg					NVARCHAR(MAX),
 | 
						|
	ErtekelesSzovegRovidNev			NVARCHAR(3),
 | 
						|
	ErtekelesOsztalyzatId			INT,
 | 
						|
	ErtekelesOsztalyzatValue		INT,
 | 
						|
	ErtekelesOsztalyzatNev			NVARCHAR(MAX),
 | 
						|
	ErtekelesSzazalek				NVARCHAR(MAX),
 | 
						|
	MagatartasOsztalyzatId			INT,
 | 
						|
	MagatartasOsztalyzatValue		INT,
 | 
						|
	MagatartasOsztalyzatNev			NVARCHAR(MAX),
 | 
						|
	MagatartasSzoveg				NVARCHAR(MAX),
 | 
						|
	MagatartasSzovegRovidNev		NVARCHAR(3),
 | 
						|
	MagatartasErtekId				INT,
 | 
						|
	MagatartasErtek					NVARCHAR(MAX),
 | 
						|
	MagatartasErtekOsztalyzatkent	INT,
 | 
						|
	SzorgalomOsztalyzatId			INT,
 | 
						|
	SzorgalomOsztalyzatValue		INT,
 | 
						|
	SzorgalomOsztalyzatNev			NVARCHAR(MAX),
 | 
						|
	SzorgalomSzoveg					NVARCHAR(MAX),
 | 
						|
	SzorgalomSzovegRovidNev			NVARCHAR(3),
 | 
						|
	SzorgalomErtekId				INT,
 | 
						|
	SzorgalomErtek					NVARCHAR(MAX),
 | 
						|
	SzorgalomErtekOsztalyzatkent	INT,
 | 
						|
	TanuloId						INT,
 | 
						|
	TanuloCsoportId					INT,
 | 
						|
	OsztalyCsoportId				INT,
 | 
						|
	TantargyId						INT,
 | 
						|
	TantargyNevZarojellel			NVARCHAR(MAX),
 | 
						|
	TantargyNevNyomtatvanyban		NVARCHAR(MAX),
 | 
						|
	TantargyNev						NVARCHAR(MAX),
 | 
						|
	TantargyAngolNev				NVARCHAR(MAX),
 | 
						|
	TantargyNemetNev				NVARCHAR(MAX),
 | 
						|
	TargyKategoriaId				INT,
 | 
						|
	FotargyE						CHAR(1),
 | 
						|
	Altantargy						CHAR(1),
 | 
						|
	FotargyId						INT,
 | 
						|
	ErtekelesTema					NVARCHAR(MAX),
 | 
						|
	ErtekeloId						INT,
 | 
						|
	ErtekelesModjaId				INT,
 | 
						|
	IsMagatartasSzorgalom			CHAR(1),
 | 
						|
	Jeloles							NVARCHAR(MAX),
 | 
						|
	JelolesAndErtekelesTema			NVARCHAR(MAX),
 | 
						|
    RogzitesDatum                   DATE
 | 
						|
)
 | 
						|
 | 
						|
OPEN ocsCur
 | 
						|
FETCH NEXT FROM ocsCur INTO @ocsId
 | 
						|
 | 
						|
WHILE @@FETCH_STATUS = 0
 | 
						|
BEGIN
 | 
						|
    TRUNCATE TABLE #OsszErtekeles
 | 
						|
    INSERT INTO #OsszErtekeles
 | 
						|
    (
 | 
						|
       ErtekelesId
 | 
						|
	  ,Datum
 | 
						|
	  ,TipusId
 | 
						|
	  ,ErtekelesSzoveg
 | 
						|
	  ,ErtekelesSzovegRovidNev
 | 
						|
	  ,ErtekelesOsztalyzatId
 | 
						|
	  ,ErtekelesOsztalyzatValue
 | 
						|
	  ,ErtekelesOsztalyzatNev
 | 
						|
	  ,ErtekelesSzazalek
 | 
						|
	  ,MagatartasOsztalyzatId
 | 
						|
	  ,MagatartasOsztalyzatValue
 | 
						|
	  ,MagatartasOsztalyzatNev
 | 
						|
	  ,MagatartasSzoveg
 | 
						|
	  ,MagatartasSzovegRovidNev
 | 
						|
	  ,MagatartasErtekId
 | 
						|
	  ,MagatartasErtek
 | 
						|
	  ,MagatartasErtekOsztalyzatkent
 | 
						|
	  ,SzorgalomOsztalyzatId
 | 
						|
	  ,SzorgalomOsztalyzatValue
 | 
						|
	  ,SzorgalomOsztalyzatNev
 | 
						|
	  ,SzorgalomSzoveg
 | 
						|
	  ,SzorgalomSzovegRovidNev
 | 
						|
	  ,SzorgalomErtekId
 | 
						|
	  ,SzorgalomErtek
 | 
						|
	  ,SzorgalomErtekOsztalyzatkent
 | 
						|
	  ,TanuloId
 | 
						|
	  ,TanuloCsoportId
 | 
						|
	  ,OsztalyCsoportId
 | 
						|
	  ,TantargyId
 | 
						|
	  ,TantargyNevZarojellel
 | 
						|
	  ,TantargyNevNyomtatvanyban
 | 
						|
	  ,TantargyNev
 | 
						|
	  ,TantargyAngolNev
 | 
						|
	  ,TantargyNemetNev
 | 
						|
	  ,TargyKategoriaId
 | 
						|
	  ,FotargyE
 | 
						|
	  ,Altantargy
 | 
						|
	  ,FotargyId
 | 
						|
	  ,ErtekelesTema
 | 
						|
	  ,ErtekeloId
 | 
						|
	  ,ErtekelesModjaId
 | 
						|
	  ,IsMagatartasSzorgalom
 | 
						|
	  ,Jeloles
 | 
						|
	  ,JelolesAndErtekelesTema
 | 
						|
      ,RogzitesDatum
 | 
						|
    )
 | 
						|
    SELECT
 | 
						|
       ErtekelesId
 | 
						|
	  ,Datum
 | 
						|
	  ,TipusId
 | 
						|
	  ,ErtekelesSzoveg
 | 
						|
	  ,ErtekelesSzovegRovidNev
 | 
						|
	  ,ErtekelesOsztalyzatId
 | 
						|
	  ,ErtekelesOsztalyzatValue
 | 
						|
	  ,ErtekelesOsztalyzatNev
 | 
						|
	  ,ErtekelesSzazalek
 | 
						|
	  ,MagatartasOsztalyzatId
 | 
						|
	  ,MagatartasOsztalyzatValue
 | 
						|
	  ,MagatartasOsztalyzatNev
 | 
						|
	  ,MagatartasSzoveg
 | 
						|
	  ,MagatartasSzovegRovidNev
 | 
						|
	  ,MagatartasErtekId
 | 
						|
	  ,MagatartasErtek
 | 
						|
	  ,MagatartasErtekOsztalyzatkent
 | 
						|
	  ,SzorgalomOsztalyzatId
 | 
						|
	  ,SzorgalomOsztalyzatValue
 | 
						|
	  ,SzorgalomOsztalyzatNev
 | 
						|
	  ,SzorgalomSzoveg
 | 
						|
	  ,SzorgalomSzovegRovidNev
 | 
						|
	  ,SzorgalomErtekId
 | 
						|
	  ,SzorgalomErtek
 | 
						|
	  ,SzorgalomErtekOsztalyzatkent
 | 
						|
	  ,TanuloId
 | 
						|
	  ,TanuloCsoportId
 | 
						|
	  ,OsztalyCsoportId
 | 
						|
	  ,TantargyId
 | 
						|
	  ,TantargyNevZarojellel
 | 
						|
	  ,TantargyNevNyomtatvanyban
 | 
						|
	  ,TantargyNev
 | 
						|
	  ,TantargyAngolNev
 | 
						|
	  ,TantargyNemetNev
 | 
						|
	  ,TargyKategoriaId
 | 
						|
	  ,FotargyE
 | 
						|
	  ,Altantargy
 | 
						|
	  ,FotargyId
 | 
						|
	  ,ErtekelesTema
 | 
						|
	  ,ErtekeloId
 | 
						|
	  ,ErtekelesModjaId
 | 
						|
	  ,IsMagatartasSzorgalom
 | 
						|
	  ,Jeloles
 | 
						|
	  ,JelolesAndErtekelesTema
 | 
						|
      ,RogzitesDatum
 | 
						|
    FROM [fnGetDokumentumErtekelesekOsztalyonkent] (@pTanevId, @ocsId, 1518, DEFAULT, 1, DEFAULT, 1)
 | 
						|
 | 
						|
	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
 | 
						|
    ,STUFF((
 | 
						|
      SELECT DISTINCT ', ' + f.C_NYOMTATASINEV
 | 
						|
      FROM #OsszErtekeles
 | 
						|
        INNER JOIN T_FELHASZNALO_OSSZES AS f ON f.ID = #OsszErtekeles.ErtekeloId AND f.C_TANEVID = @pTanevId
 | 
						|
      WHERE (TantargyId = ertekeles.TantargyId) AND (TanuloId = ertekeles.TanuloId)
 | 
						|
      FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)'), 1, 2, '') AS TanarNeve
 | 
						|
	FROM
 | 
						|
		#OsszErtekeles 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
 | 
						|
	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
 | 
						|
    ,ertekeles.TantargyId
 | 
						|
    ,ertekeles.TanuloId
 | 
						|
	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
 | 
						|
DROP TABLE #OsszErtekeles
 | 
						|
 | 
						|
END
 | 
						|
GO |