471 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			471 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
DROP PROCEDURE IF EXISTS sp_GetDokumentumErtekelesekIdoszakonkent
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE sp_GetDokumentumErtekelesekIdoszakonkent
 | 
						|
	@tanevId						INT, 
 | 
						|
	@osztalyCsoportId				INT, 
 | 
						|
	@ertekelesTipusa				INT, 
 | 
						|
	@csakTanorai					BIT, 
 | 
						|
	@csakKivlasztottOsztalyCsoport	BIT, 
 | 
						|
	@atsoroltTanuloErtekelesek		INT,
 | 
						|
	@fuggolegesTantargyak			BIT,
 | 
						|
	@isMegjegyzesMegjelenjen		BIT = 1,
 | 
						|
  @intezmenyId        INT
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
  SET NOCOUNT ON;
 | 
						|
  /* a #students tábla deklarálása az alábbi tároltakban történik: sp_GetOsztalynaplo, sp_GetCsoportNaplo, sp_GetUzenofuzetErtekelolap*/
 | 
						|
 | 
						|
		DECLARE @FelevVegeHonap INT,
 | 
						|
			@FelevVegeNap	INT
 | 
						|
	SELECT 
 | 
						|
			@FelevVegeHonap = DATEPART(mm, C_DATUM)
 | 
						|
		,@FelevVegeNap = DATEPART(dd, C_DATUM)
 | 
						|
	FROM T_TANEVRENDJE_OSSZES 
 | 
						|
	WHERE 
 | 
						|
		C_NAPTIPUSA = 1400 
 | 
						|
		AND TOROLT = 'F' 
 | 
						|
		AND C_TANEVID = @tanevid
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		 Tipus
 | 
						|
		,Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,Ertekeles
 | 
						|
	INTO #magatartasSzorgalomTMP 
 | 
						|
	FROM
 | 
						|
	(SELECT 
 | 
						|
		'Magatartás' Tipus
 | 
						|
		,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum))  Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev)	
 | 
						|
		+	CASE 
 | 
						|
				WHEN TipusId = 1518 THEN ''
 | 
						|
				WHEN TipusId = 1522 THEN '(I.)'
 | 
						|
				WHEN TipusId = 1523 THEN '(III.)'
 | 
						|
				WHEN TipusId = 1524 THEN '(II.)'
 | 
						|
				WHEN TipusId = 1525 THEN '(IV.)'
 | 
						|
			END AS Ertekeles
 | 
						|
	FROM #ErtekelesekTemp
 | 
						|
	WHERE
 | 
						|
		(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
 | 
						|
		AND TipusId IN (1518, 1522, 1523, 1524, 1525)
 | 
						|
 | 
						|
	UNION ALL
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		'Szorgalom'
 | 
						|
		,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum))  Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev) 
 | 
						|
		+	CASE 
 | 
						|
				WHEN TipusId = 1518 THEN ''
 | 
						|
				WHEN TipusId = 1522 THEN '(I.)'
 | 
						|
				WHEN TipusId = 1523 THEN '(III.)'
 | 
						|
				WHEN TipusId = 1524 THEN '(II.)'
 | 
						|
				WHEN TipusId = 1525 THEN '(IV.)'
 | 
						|
			END AS Ertekeles
 | 
						|
	FROM #ErtekelesekTemp
 | 
						|
	WHERE
 | 
						|
		(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
 | 
						|
		AND TipusId IN (1518, 1522, 1523, 1524, 1525)
 | 
						|
 | 
						|
	UNION ALL
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		'Szorgalom'
 | 
						|
		,15  Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev) + Jeloles
 | 
						|
	FROM #ErtekelesekTemp
 | 
						|
	WHERE
 | 
						|
		(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
 | 
						|
		AND TipusId = 1519
 | 
						|
 | 
						|
	UNION ALL
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		'Magatartás'
 | 
						|
		,15  Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev)  + Jeloles
 | 
						|
	FROM #ErtekelesekTemp
 | 
						|
	WHERE
 | 
						|
		(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
 | 
						|
		AND TipusId = 1519
 | 
						|
 | 
						|
	UNION ALL
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		'Szorgalom'
 | 
						|
		,16  Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev)  + Jeloles
 | 
						|
	FROM #ErtekelesekTemp
 | 
						|
	WHERE
 | 
						|
		(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL) 
 | 
						|
		AND TipusId = 1520
 | 
						|
 | 
						|
	UNION ALL
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		'Magatartás'
 | 
						|
		,16  Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev) + Jeloles
 | 
						|
	FROM #ErtekelesekTemp
 | 
						|
	WHERE
 | 
						|
		(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
 | 
						|
		AND TipusId = 1520
 | 
						|
	)magszorg
 | 
						|
 | 
						|
	SELECT DISTINCT
 | 
						|
		Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,Tipus
 | 
						|
		,STUFF((
 | 
						|
			SELECT ', ' + CAST(Ertekeles AS nvarchar(max))
 | 
						|
			FROM #magatartasSzorgalomTMP bmsz 
 | 
						|
			WHERE 
 | 
						|
				msz.TanuloId = bmsz.TanuloId
 | 
						|
				AND msz.Tipus = bmsz.Tipus
 | 
						|
				AND msz.Honap = bmsz.Honap
 | 
						|
				AND msz.TanuloCsoportId = bmsz.TanuloCsoportId
 | 
						|
			FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles 	
 | 
						|
		,IIF(Tipus = 'Magatartás', 0, 1) RENDEZ1
 | 
						|
		,'' RENDEZ2
 | 
						|
		,0	RENDEZ3
 | 
						|
		,0	RENDEZ4
 | 
						|
		,'' RENDEZ5
 | 
						|
		, CASE 
 | 
						|
			WHEN Honap = 2 THEN 8
 | 
						|
			WHEN Honap = 3 THEN 9
 | 
						|
			WHEN Honap = 4 THEN 10
 | 
						|
			WHEN Honap = 5 THEN 11
 | 
						|
			WHEN Honap = 6 THEN 12
 | 
						|
			WHEN Honap = 9 THEN  1
 | 
						|
			WHEN Honap = 10 THEN 2
 | 
						|
			WHEN Honap = 11 THEN 3
 | 
						|
			WHEN Honap = 12 THEN 4
 | 
						|
			WHEN Honap = 13 THEN 5
 | 
						|
			WHEN Honap = 14 THEN 7
 | 
						|
			WHEN Honap = 15 THEN 6
 | 
						|
			WHEN Honap = 16 THEN 15
 | 
						|
		END AS RendezHonap
 | 
						|
	INTO #magatartasSzorgalom 
 | 
						|
	FROM #magatartasSzorgalomTMP msz
 | 
						|
 | 
						|
	CREATE CLUSTERED INDEX ci111sss on #magatartasSzorgalomTMP (tanulocsoportid) 
 | 
						|
 | 
						|
	SELECT 
 | 
						|
	     Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,TantargyId
 | 
						|
		,TantargyNev
 | 
						|
		,Ertekeles 
 | 
						|
		,RENDEZ1
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
	INTO #jegyekTMP 
 | 
						|
	FROM
 | 
						|
	(SELECT 
 | 
						|
		IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum))  Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,TantargyId
 | 
						|
		,TantargyNev
 | 
						|
		,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek)
 | 
						|
			+	CASE 
 | 
						|
				WHEN TipusId = 1518 THEN ''
 | 
						|
				WHEN TipusId = 1522 THEN '(I.)'
 | 
						|
				WHEN TipusId = 1523 THEN '(III.)'
 | 
						|
				WHEN TipusId = 1524 THEN '(II.)'
 | 
						|
				WHEN TipusId = 1525 THEN '(IV.)'
 | 
						|
				WHEN TipusId = 1521 THEN '(mz)'
 | 
						|
				WHEN TipusId = 1526 THEN '(pv)'
 | 
						|
				WHEN TipusId = 1527 THEN '(ov)'
 | 
						|
				WHEN TipusId = 1528 THEN '(kv)'
 | 
						|
				WHEN TipusId = 6916 THEN '(pótló v.)'
 | 
						|
				WHEN TipusId = 6917 THEN '(jv)'
 | 
						|
				WHEN TipusId = 6918 THEN '(bv)'
 | 
						|
				ELSE ' ' + LOWER(SUBSTRING(C_NAME, 0, 3))
 | 
						|
			END AS Ertekeles
 | 
						|
		,RENDEZ1
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
	FROM #ErtekelesekTemp ertekeles
 | 
						|
	LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertekesMod ON ertekeles.TipusId = ertekesMod.ID AND TOROLT = 'F' AND ertekesMod.C_TANEVID = @tanevId
 | 
						|
	WHERE
 | 
						|
		isMagatartasSzorgalom = 'F'
 | 
						|
		AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL)
 | 
						|
		AND TipusId NOT IN (1519, 1520)
 | 
						|
			
 | 
						|
	UNION ALL
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		15  Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,TantargyId
 | 
						|
		,TantargyNev
 | 
						|
		,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, Jeloles, '')
 | 
						|
		,RENDEZ1
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
	FROM #ErtekelesekTemp
 | 
						|
	WHERE
 | 
						|
		isMagatartasSzorgalom = 'F'
 | 
						|
		AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL)
 | 
						|
		AND TipusId = 1519
 | 
						|
 | 
						|
	UNION ALL
 | 
						|
 | 
						|
	SELECT 
 | 
						|
		16  Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,TantargyId
 | 
						|
		,TantargyNev
 | 
						|
		,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, Jeloles, '')
 | 
						|
		,RENDEZ1
 | 
						|
		,RENDEZ2
 | 
						|
		,RENDEZ3
 | 
						|
		,RENDEZ4
 | 
						|
		,RENDEZ5
 | 
						|
	FROM #ErtekelesekTemp
 | 
						|
	WHERE
 | 
						|
		isMagatartasSzorgalom = 'F'
 | 
						|
		AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL)
 | 
						|
		AND TipusId = 1520
 | 
						|
	)jegyek
 | 
						|
 | 
						|
	CREATE CLUSTERED INDEX ci111ssws on #jegyekTMP (tanulocsoportid) 
 | 
						|
-----------------------------------------------------------------------------------------------
 | 
						|
  INSERT INTO #jegyekTMP
 | 
						|
  SELECT 	     Honap
 | 
						|
		,TanuloId
 | 
						|
		,TanuloCsoportId
 | 
						|
		,NULL AS TantargyId
 | 
						|
		,a.Tipus
 | 
						|
		,Ertekeles 
 | 
						|
		,IIF(a.Tipus = 'Magatartás', 0, 1) RENDEZ1
 | 
						|
		,'' AS RENDEZ2
 | 
						|
		,0 AS RENDEZ3
 | 
						|
		,0 AS RENDEZ4
 | 
						|
		,'' AS RENDEZ5
 | 
						|
 FROM #magatartasSzorgalomTmp a
 | 
						|
 | 
						|
  -- Összeszedjük az osztályhoz kapcsolódó csoportokat
 | 
						|
	CREATE TABLE #OsztalyCsoportIdList(
 | 
						|
  		 ID	INT PRIMARY KEY
 | 
						|
	)
 | 
						|
 | 
						|
  IF EXISTS (SELECT ID FROM T_OSZTALY_OSSZES WHERE ID = @osztalyCsoportId)
 | 
						|
  BEGIN
 | 
						|
	  INSERT INTO
 | 
						|
		  #OsztalyCsoportIdList (ID)
 | 
						|
      SELECT ID
 | 
						|
    FROM fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId)
 | 
						|
    -- Nem tanórai célú csoportok eltávolítása
 | 
						|
    DELETE ocsl
 | 
						|
    FROM #OsztalyCsoportIdList ocsl
 | 
						|
    LEFT JOIN T_CSOPORT_OSSZES cs
 | 
						|
          ON cs.ID = ocsl.ID
 | 
						|
    WHERE cs.C_TIPUSA <> 1034
 | 
						|
  END
 | 
						|
  ELSE
 | 
						|
  BEGIN 
 | 
						|
  -- Csoport esetén csak a keresett csoport kell legyen tagja
 | 
						|
    INSERT INTO #OsztalyCsoportIdList (ID)
 | 
						|
    SELECT @osztalyCsoportId
 | 
						|
  END
 | 
						|
 | 
						|
  -- Összeszedjük az összes Tanuló/Tanulócsoport/Hónap-ot
 | 
						|
	SELECT
 | 
						|
		tcs.C_TANULOID AS ID
 | 
						|
		,Honap
 | 
						|
		,tcs.ID AS TanuloCsoportId
 | 
						|
	INTO #TanuloIdHonap
 | 
						|
	FROM T_TANULOCSOPORT_OSSZES tcs
 | 
						|
    INNER JOIN #OsztalyCsoportIdList ocsil ON tcs.C_OSZTALYCSOPORTID = ocsil.ID
 | 
						|
    INNER JOIN 
 | 
						|
    (
 | 
						|
    -- Kidobjuk a csoportok által behozott, más osztályba járó tanulókat
 | 
						|
      SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T')
 | 
						|
    ) AS Tanulok ON Tanulok.TanuloId = tcs.C_TANULOID
 | 
						|
	CROSS JOIN (VALUES (2),(3),(4),(5),(6),(9),(10),(11),(12),(13),(14),(15),(16)) Honap (Honap)
 | 
						|
    
 | 
						|
  INSERT INTO #Tantargyak
 | 
						|
  EXEC uspGetDokumentumTantargyakErtekeleshez @intezmenyId, @tanevId, @osztalyCsoportId
 | 
						|
 | 
						|
  SELECT
 | 
						|
    tih.Id TanuloId
 | 
						|
    ,tih.TanuloCsoportId TanuloCsoportId
 | 
						|
    ,tih.Honap Honap
 | 
						|
    ,t.C_NEV TantargyNev
 | 
						|
    ,t.ID TantargyId
 | 
						|
    ,t.RENDEZ1
 | 
						|
    ,t.RENDEZ2
 | 
						|
    ,t.RENDEZ3
 | 
						|
    ,t.RENDEZ4
 | 
						|
    ,t.RENDEZ5
 | 
						|
  INTO #TanuloTantargyHonapTmp
 | 
						|
  FROM #TanuloIdHonap tih
 | 
						|
    INNER JOIN #Tantargyak t ON t.c_tanuloid = tih.Id and t.c_tanulocsoportid = tih.TanuloCsoportId
 | 
						|
 | 
						|
-----------------------------------------------------------------------------------------------------------
 | 
						|
	SELECT DISTINCT
 | 
						|
		 TanuloIdHonap.Honap
 | 
						|
		,TanuloIdHonap.TanuloId TanuloId
 | 
						|
		,TanuloIdHonap.TanuloCsoportId
 | 
						|
		,TanuloIdHonap.TantargyId
 | 
						|
		,TanuloIdHonap.TantargyNev
 | 
						|
		,STUFF((
 | 
						|
			SELECT ', ' + CAST(Ertekeles AS nvarchar(max))
 | 
						|
			FROM #jegyekTMP bjegyekTMP
 | 
						|
			WHERE 
 | 
						|
				jegyekTMP.TanuloId = bjegyekTMP.TanuloId
 | 
						|
				AND jegyekTMP.TanuloCsoportId = bjegyekTMP.TanuloCsoportId
 | 
						|
				AND jegyekTMP.TantargyNev = bjegyekTMP.TantargyNev
 | 
						|
				AND jegyekTMP.Honap = bjegyekTMP.Honap
 | 
						|
			FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles 	
 | 
						|
		,TanuloIdHonap.RENDEZ1
 | 
						|
		,TanuloIdHonap.RENDEZ2
 | 
						|
		,TanuloIdHonap.RENDEZ3
 | 
						|
		,TanuloIdHonap.RENDEZ4
 | 
						|
		,TanuloIdHonap.RENDEZ5
 | 
						|
		,
 | 
						|
			CASE 
 | 
						|
			WHEN TanuloIdHonap.Honap = 2 THEN 8
 | 
						|
			WHEN TanuloIdHonap.Honap = 3 THEN 9
 | 
						|
			WHEN TanuloIdHonap.Honap = 4 THEN 10
 | 
						|
			WHEN TanuloIdHonap.Honap = 5 THEN 11
 | 
						|
			WHEN TanuloIdHonap.Honap = 6 THEN 12
 | 
						|
			WHEN TanuloIdHonap.Honap = 9 THEN  1
 | 
						|
			WHEN TanuloIdHonap.Honap = 10 THEN 2
 | 
						|
			WHEN TanuloIdHonap.Honap = 11 THEN 3
 | 
						|
			WHEN TanuloIdHonap.Honap = 12 THEN 4
 | 
						|
			WHEN TanuloIdHonap.Honap = 13 THEN 5
 | 
						|
			WHEN TanuloIdHonap.Honap = 14 THEN 7
 | 
						|
			WHEN TanuloIdHonap.Honap = 15 THEN 6
 | 
						|
			WHEN TanuloIdHonap.Honap = 16 THEN 15
 | 
						|
			END AS RendezHonap
 | 
						|
	INTO #jegyek 
 | 
						|
	FROM #TanuloTantargyHonapTmp TanuloIdHonap
 | 
						|
		LEFT JOIN #jegyekTMP jegyekTMP ON TanuloIdHonap.TanuloId = jegyekTMP.TanuloId 
 | 
						|
											AND TanuloIdHonap.Honap = jegyekTMP.Honap 
 | 
						|
											AND TanuloIdHonap.TanuloCsoportId = jegyekTMP.TanuloCsoportId
 | 
						|
                      AND TanuloIdHonap.TantargyNev = jegyekTMP.TantargyNev
 | 
						|
 | 
						|
   IF @fuggolegesTantargyak = 1
 | 
						|
   BEGIN
 | 
						|
   
 | 
						|
		DECLARE @tantargyakJegyek NVARCHAR(MAX)
 | 
						|
		DECLARE @tantargyakNevvelJegyek NVARCHAR(MAX)
 | 
						|
		SELECT	@tantargyakNevvelJegyek = ISNULL(@tantargyakNevvelJegyek + ', ', '') + '[' + CAST(t.TantargyId AS NVARCHAR(MAX)) + '] AS [' + t.TantargyNev + ']',
 | 
						|
				@tantargyakJegyek = ISNULL(@tantargyakJegyek + ', ', '[0], [1],') + '[' + CAST(t.TantargyId AS NVARCHAR(MAX)) + ']'
 | 
						|
		FROM (SELECT DISTINCT TantargyId, IIF(LEN(t.c_nev) > 128, SUBSTRING(t.C_NEV,1,120) + '...', t.c_nev) AS TantargyNev, RENDEZ1
 | 
						|
			,RENDEZ2 ,RENDEZ3, RENDEZ4, RENDEZ5  FROM #jegyek j INNER JOIN T_TANTARGY_OSSZES t ON t.Id = j.TantargyId ) t
 | 
						|
		ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
 | 
						|
 | 
						|
		DECLARE @sqlJegyek NVARCHAR(MAX)
 | 
						|
		SET @sqlJegyek = '
 | 
						|
		SELECT 
 | 
						|
			 TanuloId tanuloID
 | 
						|
			,TanuloCsoportId
 | 
						|
			,CASE 
 | 
						|
				WHEN Honap = 2 THEN ''02.''
 | 
						|
				WHEN Honap = 3 THEN ''03.''
 | 
						|
				WHEN Honap = 4 THEN ''04.''
 | 
						|
				WHEN Honap = 5 THEN ''05.''
 | 
						|
				WHEN Honap = 6 THEN ''06.''
 | 
						|
				WHEN Honap = 9 THEN ''09.''
 | 
						|
				WHEN Honap = 10 THEN ''10.''
 | 
						|
				WHEN Honap = 11 THEN ''11.''
 | 
						|
				WHEN Honap = 12 THEN ''12.''
 | 
						|
				WHEN Honap = 13 THEN ''1/I.''
 | 
						|
				WHEN Honap = 14 THEN ''1/II.''
 | 
						|
				WHEN Honap = 15 THEN ''F''
 | 
						|
				WHEN Honap = 16 THEN ''É''
 | 
						|
			END AS periodusNev
 | 
						|
				,piv.[0] AS Magatartás
 | 
						|
				,piv.[1] AS Szorgalom
 | 
						|
				,' + @tantargyakNevvelJegyek + '  
 | 
						|
		FROM 
 | 
						|
		(
 | 
						|
		  SELECT 
 | 
						|
			  CASE 
 | 
						|
          WHEN TantargyNev = ''Magatartás'' THEN 0
 | 
						|
          WHEN TantargyNev = ''Szorgalom'' THEN 1
 | 
						|
          ELSE TantargyId 
 | 
						|
        END AS TantargyId
 | 
						|
			  ,Honap
 | 
						|
			  ,s.ID TanuloId
 | 
						|
			  ,s.TanuloCsoportId
 | 
						|
			  ,Ertekeles
 | 
						|
			  ,RendezHonap 
 | 
						|
		  FROM #jegyek j 
 | 
						|
			  INNER JOIN #studentsWithTanuloCsoport s on j.Tanuloid = s.ID AND s.TanuloCsoportId = j.TanuloCsoportId
 | 
						|
		)a 
 | 
						|
		PIVOT (MAX(Ertekeles) FOR TantargyId in (' + @tantargyakJegyek + ')) piv
 | 
						|
		ORDER BY RendezHonap		
 | 
						|
		'
 | 
						|
  
 | 
						|
		IF (@tantargyakJegyek IS NULL)
 | 
						|
			BEGIN
 | 
						|
				SELECT 0 AS tanuloId, 0 as TanuloCsoportId
 | 
						|
			END
 | 
						|
		ELSE
 | 
						|
			BEGIN
 | 
						|
				EXEC sp_executesql @sqlJegyek
 | 
						|
			END
 | 
						|
	END
 | 
						|
	
 | 
						|
	ELSE
 | 
						|
	BEGIN
 | 
						|
		SELECT
 | 
						|
			 TanuloId		TanuloId
 | 
						|
			,TanuloCsoportId
 | 
						|
			,TantargyNev AS Tipus
 | 
						|
			,RENDEZ1
 | 
						|
			,RENDEZ2
 | 
						|
			,RENDEZ3
 | 
						|
			,RENDEZ4
 | 
						|
			,RENDEZ5
 | 
						|
			,[9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16]	
 | 
						|
		FROM (
 | 
						|
      SELECT jegyek.TanuloId
 | 
						|
        ,ISNULL(tanulok.TanuloCsoportId
 | 
						|
            ,(SELECT TOP 1 ID FROM T_TANULOCSOPORT_OSSZES AS tcs 
 | 
						|
                WHERE tcs.C_TANULOID = jegyek.TanuloId AND tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId)
 | 
						|
        ) AS TanuloCsoportId, Ertekeles, Honap, TantargyId, TantargyNev, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
 | 
						|
      FROM #jegyek AS jegyek
 | 
						|
        LEFT JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalycsoportId, 'T') AS tanulok ON
 | 
						|
            tanulok.TanuloId = jegyek.TanuloId AND tanulok.TanuloCsoportId = jegyek.TanuloCsoportId
 | 
						|
      ) j 
 | 
						|
		PIVOT (MAX(Ertekeles) FOR Honap IN ([9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16])) piv
 | 
						|
		ORDER BY TanuloId, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5, Tipus
 | 
						|
	END
 | 
						|
END
 | 
						|
 | 
						|
GO |