DROP PROCEDURE IF EXISTS uspGetDokumentumErtekelesekIdoszakonkent GO CREATE PROCEDURE uspGetDokumentumErtekelesekIdoszakonkent @tanevId int ,@osztalyCsoportId int ,@ertekelesTipusa int ,@csakTanorai bit ,@csakKivalasztottOsztalyCsoport bit ,@atsoroltTanuloErtekelesek int ,@fuggolegesTantargyak bit ,@isMegjegyzesMegjelenjen bit = 1 ,@intezmenyId int ,@osztalyzatTipusTypeID int = 44 ,@magatartasErtekelesTipusTypeID int = 50 ,@szorgalomErtekelesTipusTypeID int = 51 ,@pIsOsztalynaplobanNemJelenikMeg bit = 0 ,@pIsKellKapcsolodoOsztalyCsoportok bit = 0 ,@pIsTantargynevNyomtatvanyban bit = 0 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 CREATE TABLE #magatartasSzorgalomTMP ( Tipus nvarchar(255) ,Honap int ,TanuloId int ,TanuloCsoportId int ,Ertekeles nvarchar(max) ,Datum datetime ,RogzitesDatum datetime ) CREATE TABLE #magatartasSzorgalom ( Honap int ,TanuloId int ,TanuloCsoportId int ,Tipus nvarchar(255) ,Ertekeles nvarchar(max) ,RENDEZ0 int ,RENDEZ1 int ,RENDEZ2 nvarchar(255) ,RENDEZ3 int ,RENDEZ4 int ,RENDEZ5 nvarchar(255) ,RendezHonap int ,Datum datetime ,RogzitesDatum datetime ) CREATE TABLE #jegyekTMP ( Honap int ,TanuloId int ,TanuloCsoportId int ,TantargyId int ,TantargyNev nvarchar(255) ,TantargyNevNyomtatvanyban nvarchar(255) ,Ertekeles nvarchar(max) ,RENDEZ0 int ,RENDEZ1 int ,RENDEZ2 nvarchar(max) ,RENDEZ3 int ,RENDEZ4 int ,RENDEZ5 nvarchar(max) ,Datum datetime ,RogzitesDatum datetime ) CREATE TABLE #TanuloIdHonap ( ID int ,Honap int ,TanuloCsoportId int ) CREATE TABLE #TanuloTantargyHonapTmp ( TanuloId int ,TanuloCsoportId int ,Honap int ,TantargyNev nvarchar(255) ,TantargyNevNyomtatvanyban nvarchar(255) ,TantargyId int ,RENDEZ0 int ,RENDEZ1 int ,RENDEZ2 nvarchar(max) ,RENDEZ3 int ,RENDEZ4 int ,RENDEZ5 nvarchar(max) ) CREATE TABLE #jegyek ( Honap int ,TanuloId int ,TanuloCsoportId int ,TantargyId int ,TantargyNev nvarchar(255) ,TantargyNevNyomtatvanyban nvarchar(255) ,Ertekeles nvarchar(max) ,RENDEZ0 int ,RENDEZ1 int ,RENDEZ2 nvarchar(max) ,RENDEZ3 int ,RENDEZ4 int ,RENDEZ5 nvarchar(max) ,RendezHonap 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 INSERT INTO #magatartasSzorgalomTMP SELECT Tipus ,Honap ,TanuloId ,TanuloCsoportId ,Ertekeles ,Datum ,RogzitesDatum FROM (SELECT 'Magatartás' Tipus ,CASE WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap THEN 13 WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) > @FelevVegeNap THEN 14 ELSE DATEPART(mm, Datum) END AS 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 ,Datum ,RogzitesDatum FROM #ErtekelesekTemp WHERE (MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL) AND TipusId IN (1518, 1522, 1523, 1524, 1525) UNION ALL SELECT 'Magatartás' Tipus ,CASE WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap THEN 13 WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) > @FelevVegeNap THEN 14 ELSE DATEPART(mm, Datum) END AS Honap ,TanuloId ,TanuloCsoportId ,CASE WHEN TipusId in (1522, 1523, 1524, 1525) THEN LOWER(ISNULL(MagatartasSzovegRovidNev, 'sz')) + CASE WHEN TipusId = 1522 THEN '(I.)' WHEN TipusId = 1523 THEN '(III.)' WHEN TipusId = 1524 THEN '(II.)' WHEN TipusId = 1525 THEN '(IV.)' END ELSE LOWER(ISNULL(MagatartasSzovegRovidNev, 'sz')) + Jeloles END ,Datum ,RogzitesDatum FROM #ErtekelesekTemp WHERE MagatartasSzoveg IS NOT NULL AND TipusId IN (1518, 1522, 1523, 1524, 1525) UNION ALL SELECT 'Szorgalom' ,CASE WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap THEN 13 WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) > @FelevVegeNap THEN 14 ELSE DATEPART(mm, Datum) END AS 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 ,Datum ,RogzitesDatum FROM #ErtekelesekTemp WHERE (SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL) AND TipusId IN (1518, 1522, 1523, 1524, 1525) UNION ALL SELECT 'Szorgalom' ,CASE WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap THEN 13 WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) > @FelevVegeNap THEN 14 ELSE DATEPART(mm, Datum) END AS Honap ,TanuloId ,TanuloCsoportId ,CASE WHEN TipusId in (1522, 1523, 1524, 1525) THEN LOWER(ISNULL(SzorgalomSzovegRovidNev, 'sz')) + CASE WHEN TipusId = 1522 THEN '(I.)' WHEN TipusId = 1523 THEN '(III.)' WHEN TipusId = 1524 THEN '(II.)' WHEN TipusId = 1525 THEN '(IV.)' END ELSE LOWER(ISNULL(SzorgalomSzovegRovidNev, 'sz')) + Jeloles END ,Datum ,RogzitesDatum FROM #ErtekelesekTemp WHERE SzorgalomSzoveg IS NOT NULL AND TipusId IN (1518, 1522, 1523, 1524, 1525) UNION ALL SELECT 'Szorgalom' ,15 Honap ,TanuloId ,TanuloCsoportId ,COALESCE(SzorgalomErtek, SzorgalomOsztalyzatNev, LOWER(ISNULL(SzorgalomSzovegRovidNev, 'sz'))) + ISNULL(Jeloles, '') ,Datum ,RogzitesDatum FROM #ErtekelesekTemp WHERE (SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL OR SzorgalomSzoveg IS NOT NULL) AND TipusId = 1519 UNION ALL SELECT 'Magatartás' ,15 Honap ,TanuloId ,TanuloCsoportId ,COALESCE(MagatartasErtek, MagatartasOsztalyzatNev, LOWER(ISNULL(MagatartasSzovegRovidNev, 'sz'))) + ISNULL(Jeloles, '') ,Datum ,RogzitesDatum FROM #ErtekelesekTemp WHERE (MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL OR MagatartasSzoveg IS NOT NULL) AND TipusId = 1519 UNION ALL SELECT 'Szorgalom' ,16 Honap ,TanuloId ,TanuloCsoportId ,COALESCE(SzorgalomErtek, SzorgalomOsztalyzatNev, LOWER(ISNULL(SzorgalomSzovegRovidNev, 'sz'))) + ISNULL(Jeloles, '') ,Datum ,RogzitesDatum FROM #ErtekelesekTemp WHERE (SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL OR SzorgalomSzoveg IS NOT NULL) AND TipusId = 1520 UNION ALL SELECT 'Magatartás' ,16 Honap ,TanuloId ,TanuloCsoportId ,COALESCE(MagatartasErtek, MagatartasOsztalyzatNev, LOWER(ISNULL(MagatartasSzovegRovidNev, 'sz'))) + ISNULL(Jeloles, '') ,Datum ,RogzitesDatum FROM #ErtekelesekTemp WHERE (MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL OR MagatartasSzoveg IS NOT NULL) AND TipusId = 1520 )magszorg INSERT INTO #magatartasSzorgalom 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 ORDER BY bmsz.Datum,bmsz.RogzitesDatum FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles ,0 AS RENDEZ0 ,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 ,Datum ,RogzitesDatum FROM #magatartasSzorgalomTMP msz CREATE CLUSTERED INDEX ci111sss on #magatartasSzorgalomTMP (tanulocsoportid) INSERT INTO #jegyekTMP SELECT Honap ,TanuloId ,TanuloCsoportId ,TantargyId ,TantargyNev ,TantargyNevNyomtatvanyban ,Ertekeles ,RENDEZ0 ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 ,Datum ,RogzitesDatum FROM (SELECT CASE WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap THEN 13 WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) > @FelevVegeNap THEN 14 ELSE DATEPART(mm, Datum) END AS Honap ,TanuloId ,TanuloCsoportId ,TantargyId ,TantargyNev ,TantargyNevNyomtatvanyban ,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + CASE WHEN TipusId = 1518 THEN '' WHEN TipusId = 1522 THEN '(I.)' + ISNULL(Jeloles, '') WHEN TipusId = 1523 THEN '(III.)' + ISNULL(Jeloles, '') WHEN TipusId = 1524 THEN '(II.)' + ISNULL(Jeloles, '') WHEN TipusId = 1525 THEN '(IV.)' + ISNULL(Jeloles, '') 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 ,RENDEZ0 ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 ,Datum ,RogzitesDatum 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 CASE WHEN TipusId = 1519 THEN 15 WHEN TipusId = 1520 THEN 16 WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap THEN 13 WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) > @FelevVegeNap THEN 14 ELSE DATEPART(mm, Datum) END AS Honap ,TanuloId ,TanuloCsoportId ,TantargyId ,TantargyNev ,TantargyNevNyomtatvanyban ,CASE WHEN TipusId in (1519, 1520) THEN LOWER(ISNULL(ErtekelesSzovegRovidNev, 'sz')) WHEN TipusId in (1522, 1523, 1524, 1525) THEN LOWER(ISNULL(ErtekelesSzovegRovidNev, 'sz')) + CASE WHEN TipusId = 1522 THEN '(I.)' WHEN TipusId = 1523 THEN '(III.)' WHEN TipusId = 1524 THEN '(II.)' WHEN TipusId = 1525 THEN '(IV.)' END ELSE LOWER(ISNULL(ErtekelesSzovegRovidNev, 'sz')) + Jeloles END AS Ertekeles ,RENDEZ0 ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 ,Datum ,RogzitesDatum FROM #ErtekelesekTemp WHERE ErtekelesSzoveg IS NOT NULL UNION ALL SELECT 15 Honap ,TanuloId ,TanuloCsoportId ,TantargyId ,TantargyNev ,TantargyNevNyomtatvanyban ,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, ISNULL(Jeloles, ''), '') ,RENDEZ0 ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 ,Datum ,RogzitesDatum 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 ,TantargyNevNyomtatvanyban ,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, ISNULL(Jeloles, ''), '') ,RENDEZ0 ,RENDEZ1 ,RENDEZ2 ,RENDEZ3 ,RENDEZ4 ,RENDEZ5 ,Datum ,RogzitesDatum 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 ,a.Tipus ,Ertekeles ,0 AS RENDEZ0 ,IIF(a.Tipus = 'Magatartás', 0, 1) RENDEZ1 ,'' AS RENDEZ2 ,0 AS RENDEZ3 ,0 AS RENDEZ4 ,'' AS RENDEZ5 ,Datum ,RogzitesDatum FROM #magatartasSzorgalomTmp a -- Összeszedjük az összes Tanuló/Tanulócsoport/Hónap-ot INSERT INTO #TanuloIdHonap SELECT tcs.C_TANULOID AS ID ,Honap ,tcs.ID AS TanuloCsoportId FROM T_TANULOCSOPORT_OSSZES tcs CROSS JOIN (VALUES (2),(3),(4),(5),(6),(9),(10),(11),(12),(13),(14),(15),(16)) Honap (Honap) WHERE tcs.C_OSZTALYCSOPORTID = @osztalycsoportId INSERT INTO #Tantargyak EXEC uspGetDokumentumTantargyakErtekeleshez @intezmenyId, @tanevId, @osztalyCsoportId, @csakKivalasztottOsztalyCsoport, @osztalyzatTipusTypeID, @magatartasErtekelesTipusTypeID, @szorgalomErtekelesTipusTypeID, @pIsKellKapcsolodoOsztalyCsoportok INSERT INTO #TanuloTantargyHonapTmp SELECT tih.Id AS TanuloId ,tih.TanuloCsoportId AS TanuloCsoportId ,tih.Honap AS Honap ,t.C_NEV AS TantargyNev ,t.C_NEVNYOMTATVANYBAN AS TantargyNevNyomtatvanyban ,t.ID AS TantargyId ,t.RENDEZ0 ,t.RENDEZ1 ,t.RENDEZ2 ,t.RENDEZ3 ,t.RENDEZ4 ,t.RENDEZ5 FROM #TanuloIdHonap tih INNER JOIN #Tantargyak t ON t.c_tanuloid = tih.Id and t.c_tanulocsoportid = tih.TanuloCsoportId ----------------------------------------------------------------------------------------------------------- INSERT INTO #jegyek SELECT DISTINCT TanuloIdHonap.Honap ,TanuloIdHonap.TanuloId ,TanuloIdHonap.TanuloCsoportId ,TanuloIdHonap.TantargyId ,TanuloIdHonap.TantargyNev ,TanuloIdHonap.TantargyNevNyomtatvanyban ,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 ORDER BY Datum, RogzitesDatum FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles ,TanuloIdHonap.RENDEZ0 ,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 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 @pIsOsztalynaplobanNemJelenikMeg = 1 BEGIN -- Azon sorok eltávolítása, ahol a tantárgy meg van jelölve, hogy osztálynaplóban nem látszik, és nincs hozzá értékelés DELETE j FROM #jegyek j INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = j.TantargyId AND targy.TOROLT = 'F' WHERE targy.C_ISOSZTALYNAPLOBANEMLATSZIK = 'T' AND j.Ertekeles IS NULL END IF @fuggolegesTantargyak = 1 BEGIN DECLARE @tantargyakJegyek NVARCHAR(MAX) DECLARE @tantargyakNevvelJegyek NVARCHAR(MAX) SELECT @tantargyakNevvelJegyek = ISNULL(@tantargyakNevvelJegyek + ', ', '') + '[' + CAST(t.TantargyId AS NVARCHAR(MAX)) + '] AS [' + REPLACE(REPLACE(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, RENDEZ0, RENDEZ1 ,RENDEZ2 ,RENDEZ3, RENDEZ4, RENDEZ5 FROM #jegyek j INNER JOIN T_TANTARGY_OSSZES t ON t.Id = j.TantargyId ) t ORDER BY RENDEZ0, 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 ,TanuloCsoportId ,TantargyNev AS Tipus ,RENDEZ0 ,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, IIF(@pIsTantargynevNyomtatvanyban = 1 AND TantargyNevNyomtatvanyban IS NOT NULL AND TantargyNevNyomtatvanyban != '', TantargyNevNyomtatvanyban, TantargyNev) AS TantargyNev, RENDEZ0, 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, RENDEZ0, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5, Tipus END END GO