SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('[dbo].[sp_GetCsoportNaplo]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_GetCsoportNaplo] END GO CREATE PROCEDURE [dbo].[sp_GetCsoportNaplo] @tanevId INT, @intezmenyid INT, @csoportId INT, @iskolaErdekuSzamit BIT AS BEGIN SET NOCOUNT ON; DECLARE @isreszletesmulasztasok BIT = 0 --Kezdőoldal SELECT ia.C_NEV IntezmenyNev ,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCim ,ia.C_OMKOD OMKOD ,ia.C_IGAZGATONEVE IntezmenyVezeto ,ocs.C_NEV Csoport ,ISNULL(f.C_NYOMTATASINEV,'-') CsoportVezeto ,ISNULL(cs.C_CSOPORTNAPLOLEIRAS,'-') CsoportNaploLeiras ,FORMAT(cs.C_CSOPORTNAPLOMEGNYITASA, 'yyyy. MMMM dd.', 'hu-hu') Megnyitas ,ISNULL(FORMAT(cs.C_CSOPORTNAPLOZARASA, 'yyyy. MMMM dd.', 'hu-hu'),'-') Lezaras FROM T_INTEZMENY_OSSZES i INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.c_intezmenyid = i.id INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.c_intezmenyid = i.id AND ocs.c_tanevid = @tanevid INNER JOIN T_CSOPORT_OSSZES cs ON cs.id = ocs.id LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=cs.c_csoportvezetoid WHERE i.id = @intezmenyid AND ia.c_tanevid = @tanevid AND ocs.id = @csoportId --Csoportot vezette SELECT ISNULL(felhasznaloNev.C_NYOMTATASINEV,'-') CsoportVezeto FROM T_CSOPORT_OSSZES csoport INNER JOIN T_TANULOCSOPORT_OSSZES tanuloCsoport on tanuloCsoport.ID = csoport.ID INNER JOIN T_FELHASZNALO_OSSZES felhasznaloNev ON felhasznaloNev.id = csoport.C_CSOPORTVEZETOID WHERE csoport.id = @csoportId --Tanulók DECLARE @NaploSorszam TABLE ( TanuloId INT ,Sorszam INT ) INSERT INTO @NaploSorszam EXEC [sp_GetDokumentumTanuloNaploSorszam] @osztalyid = @csoportid CREATE TABLE #students (TanuloID INT PRIMARY KEY, BelepesDatum DATE, KilepesDatum DATE, NaploSorszam INT, Osztaly NVARCHAR(MAX), OktAzon nvarchar(max), Nev nvarchar(max)) INSERT INTO #students SELECT t.TanuloId ,BelepesDatum ,ISNULL(KilepesDatum, GETDATE()) ,nsz.Sorszam ,dbo.fnGetDokumentumTanuloAktualisOsztaly(t.TanuloId) ,C_OKTATASIAZONOSITO OktAzon ,C_NYOMTATASINEV Nev FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportid, 'T') t INNER JOIN @NaploSorszam nsz ON nsz.TanuloId = t.TanuloId INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = t.TanuloId ORDER BY C_NYOMTATASINEV SELECT TanuloId ,Osztaly ,OktAzon ,Nev FROM #students --Napló adatok DECLARE @TanitasiNapTipusok TABLE (Id INT) INSERT INTO @TanitasiNapTipusok SELECT DISTINCT ID FROM T_DICTIONARYITEMBASE_OSSZES WHERE ID IN (1385, 1393, 1394, 1395, 1400, 1402, 1403, 1404) DECLARE @ElsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1394 AND C_TANEVID = @tanevId AND TOROLT = 'F') DECLARE @UtolsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F') DECLARE @ElsoNapTanev DATE = (SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F') DECLARE @UtolsoNapTanev DATE = (SELECT TOP 1 C_UTOLSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F') DECLARE @isVegzos VARCHAR(1) = (SELECT TOP 1 C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @csoportId) DECLARE @VegzosUtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND C_NAPTIPUSA = 1402 AND TOROLT = 'F') DECLARE @NapSorszam TABLE (Datum DATE, Sorszam NVARCHAR(4)) INSERT INTO @NapSorszam SELECT C_NAPDATUMA ,CAST(DENSE_RANK() OVER(ORDER BY C_NAPDATUMA) AS NVARCHAR(4)) FROM T_NAPTARINAP_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA IN (SELECT Id FROM @TanitasiNapTipusok) AND C_NAPDATUMA <= ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev) DECLARE @datum DATE = GETDATE() CREATE TABLE #OraSorszam (TanitasioraId INT PRIMARY KEY, OraSorszam INT) INSERT INTO #OraSorszam EXEC sp_GetOraSorszamByOsztaly @osztalyCsoportId = @csoportId, @datum = @datum, @intezmenyId = @intezmenyId, @tanevId = @tanevId SELECT tao.Id TanitasioraId ,tao.C_DATUM Datum ,CONVERT(VARCHAR(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(VARCHAR(5), tao.C_ORAVEGE, 108) KezdetVeg ,C_ORATULAJDONOSID PedagogusId ,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, pedagogus.C_NYOMTATASINEV) PedagogusNev ,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam),'-'), '-') OraSorszam ,IIF(C_MEGTARTOTT = 'T', REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), 'Elmaradt') Tema ,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam),'-') +'.: ' + REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), 'Elmaradt') TemaOraSzammal ,tao.C_HETNAPJA HetNapja ,C_HETSORSZAMA HetSorszama ,C_MEGTARTOTT Megtartott ,C_TANTARGYID TantargyId ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) Tantargynev ,C_OSZTALYCSOPORTID OsztalyCsoportId ,C_NAPSORSZAMA NapSorszama ,C_ORAKEZDETE Kezdete INTO #megtartottOrak FROM T_TANITASIORA_OSSZES tao INNER JOIN T_FELHASZNALO_OSSZES pedagogus ON pedagogus.Id = tao.C_TANARID LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = tao.C_HELYETTESITOTANARID INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID LEFT JOIN (SELECT DISTINCT OraSorszam, TanitasioraId FROM #OraSorszam) oraSorszam ON oraSorszam.TanitasioraId = tao.Id WHERE C_OSZTALYCSOPORTID = @csoportId AND tao.TOROLT = 'F' SELECT nn.C_HETSORSZAMA Het ,FORMAT(MIN(nn.C_NAPDATUMA), 'yyyy.MM.dd.') HetEleje ,FORMAT(MAX(nn.C_NAPDATUMA), 'yyyy.MM.dd.') HetVege FROM T_NAPTARINAP_OSSZES nn WHERE nn.C_NAPDATUMA BETWEEN ISNULL(@ElsoNapTanevRendje, @ElsoNapTanev) AND IIF(@isVegzos = 'T', COALESCE(@VegzosUtolsoNap,@UtolsoNapTanevRendje, @UtolsoNapTanev), ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)) AND nn.C_HETNAPJA BETWEEN 1407 AND 1413 AND nn.TOROLT='F' AND nn.c_tanevId = @tanevId GROUP BY nn.C_HETSORSZAMA ORDER BY MIN(nn.C_NAPDATUMA) SELECT DISTINCT nn.C_HETSORSZAMA as Het ,d.Nap as Nap ,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') as Datum FROM T_NAPTARINAP_OSSZES nn LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum = nn.c_napdatuma AND tao.c_osztalycsoportid = @csoportid AND tao.torolt = 'F' LEFT JOIN (select distinct d.id as ID, d.c_name Nap from T_DICTIONARYITEMBASE_OSSZES d) d ON d.id = nn.c_hetnapja WHERE nn.c_orarendinap='T' AND nn.c_napdatuma >= ISNULL(@ElsoNapTanevRendje, @ElsoNapTanev) AND nn.c_napdatuma <= ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev) ORDER BY nn.c_hetsorszama, FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') SELECT mto.Datum C_NAPDATUMA ,FORMAT(mto.Datum, 'dddd', 'hu-hu') Napneve ,null C_MEGJEGYZES ,nh.C_HETKEZDONAPJA C_HETKEZDONAPJA ,nh.C_HETUTOLSONAPJA C_HETUTOLSONAPJA ,HetSorszama C_HETSORSZAMA ,KezdetVeg KezdetVeg ,nsz.Sorszam Napszam ,Tantargynev Tantargy ,PedagogusNev Tanar ,Tema Oraanyaga ,OraSorszam C_ORAEVESSORSZAM ,Kezdete Kezdete INTO #szoveges FROM #megtartottOrak mto INNER JOIN T_NAPTARIHET_OSSZES nh ON Datum BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId and nh.torolt='F' LEFT JOIN @NapSorszam nsz ON nsz.Datum = mto.Datum SELECT DISTINCT FORMAT(C_NAPDATUMA, 'yyyy. MMMM dd.', 'hu-hu') Datum , napneve , c_megjegyzes , c_hetkezdonapja , c_hetutolsonapja , c_hetsorszama , KezdetVeg , napszam , STUFF((SELECT ' | ' + CAST(bszov.TANTARGY AS VARCHAR(max)) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.KezdetVeg=szov.KezdetVeg and bszov.napszam=szov.napszam FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,3,'') TANTARGY , STUFF((SELECT ' | ' + CAST(bszov.TANAR AS VARCHAR(max)) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.KezdetVeg=szov.KezdetVeg and bszov.napszam=szov.napszam FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,3,'') TANAR , STUFF((SELECT ' | ' + CAST(bszov.ORAANYAGA AS VARCHAR(max)) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.KezdetVeg=szov.KezdetVeg and bszov.napszam=szov.napszam FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,3,'') ORAANYAGA , STUFF((SELECT ' | ' + CAST(bszov.C_ORAEVESSORSZAM AS VARCHAR(max)) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.KezdetVeg=szov.KezdetVeg and bszov.napszam=szov.napszam FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,3,'') OraEvesSorszama ,Kezdete FROM #szoveges szov ORDER BY FORMAT(C_NAPDATUMA, 'yyyy. MMMM dd.', 'hu-hu'), Kezdete /*Hiányzások*/ SELECT C_HETSORSZAMA, C_NYOMTATASINEV, MAX([1]) AS [Hetfo], MAX([2]) AS [Kedd], MAX([3]) AS [Szerda], MAX([4]) AS [Csutortok], MAX([5]) AS [Pentek], MAX([6]) AS [Szombat] FROM ( SELECT C_HETSORSZAMA, C_NYOMTATASINEV, [0], [1], [2], [3], [4], [5], [6] FROM ( SELECT DISTINCT n.C_NAPTARINAPID, DATEPART(dw,n.C_DATUM) AS NAP, t.C_NYOMTATASINEV, n.C_HETSORSZAMA, '[' + STUFF(( SELECT ', ' + CAST(OraSorszam AS VARCHAR(3)) + IIF(tm.C_TIPUS = 1499, '(k)','') FROM T_TANULOMULASZTAS_OSSZES tm INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID INNER JOIN #students s ON s.TanuloID = tm.C_ORATANULOIID LEFT JOIN (SELECT DISTINCT * FROM #OraSorszam) oraSorszam ON oraSorszam.TanitasioraId = O.Id WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID AND m.C_ORATANULOIID = tm.C_ORATANULOIID AND tm.C_TANEVID = @tanevId AND tm.torolt='F' AND o.c_tanevId=@tanevId AND o.TOROLT = 'F' AND tm.C_TIPUS IN (1499, 1500) AND o.C_OSZTALYCSOPORTID = @csoportId ORDER BY o.C_NAPTARINAPID, o.C_ORASZAM FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,2,'') + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'F', 1, 0)) AS varchar(2)) AS hianyzas FROM T_TANITASIORA_OSSZES n INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = n.ID and m.torolt='F' INNER JOIN #students s ON s.TanuloID = m.C_ORATANULOIID INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID WHERE n.C_TANEVID = @tanevId AND m.C_TANEVID = @tanevId AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533) and m.C_TIPUS IN (1499, 1500) and n.TOROLT = 'F' AND n.C_OSZTALYCSOPORTID = @csoportId GROUP BY n.C_NAPTARINAPID, C_ORATANULOIID, C_NYOMTATASINEV, n.C_HETSORSZAMA, n.C_DATUM) AS SUB PIVOT ( MAX(HIANYZAS) FOR NAP IN ([0], [1], [2], [3], [4], [5], [6]) ) AS PivotTable ) AS ASD GROUP BY C_HETSORSZAMA, C_NYOMTATASINEV ORDER BY C_HETSORSZAMA -------------------------------------- /*TANULÓ adatai*/ SELECT DISTINCT tanuloID , sorszam , torzslapSzam , oktAzon , tajSzam , anyjaNeve , szulHely , CONVERT(NVARCHAR(100),DATEPART(YEAR,szulIdo))+'. '+CONVERT(NVARCHAR(100) , datepart(month,szulIdo))+'. '+convert(nvarchar(100) , datepart(day,szulIdo))+'.' SzulIdo , gondviselok , IIF(socAdat = '', '', LEFT(socAdat, len(socAdat)- 1)) socAdat , kepzes , tanuloNeve , allampolgarsaga , diakIgazolvanySzam , kilepesDatum , beirasiNaploSorszam , aktualisOsztaly FROM ( SELECT t.ID AS tanuloID , naploSorszam.Sorszam as sorszam , f.C_NYILVANTARTASISZAM as torzslapSzam ,f.C_OKTATASIAZONOSITO as oktAzon , f.C_TAJSZAM as tajSzam , f.C_ANYJANEVE as anyjaNeve, f.C_SZULETESIHELY AS szulHely ,f.C_SZULETESIDATUM as szulIdo ,IIF(t.C_MAGANTANULO = 'T', 'Magántanuló (eü. ok), ', '') + IIF(t.C_JOGVISZONYATSZUNETELTETO = 'T', 'Jogviszony szüneteltetve, ', '') + IIF(t.C_SZAKMAIGYAKORLATON = 'T', 'Szakmai gyakorlat, ', '') + IIF(t.C_SZOCIALISTAMOGATAS = 'T', 'Szociális támogatás, ', '') + IIF(t.C_SAJATOSNEVELESU = 'T', 'Sajátos nevelési igényű, ', '') + IIF(t.C_BEJARO = 'T', 'Bejáró, ', '') AS socAdat, tt.C_NEV as kepzes, STUFF(( SELECT char(13) + char(10) + gv.C_NEV FROM T_GONDVISELO_OSSZES gv WHERE gv.C_TANULOID = s.TanuloID AND gv.TOROLT = 'F' FOR XML PATH(''), TYPE).value('.', 'nvarchar(4000)'),1,2,'') AS gondviselok, f.C_NYOMTATASINEV as tanuloNeve, d.C_NAME allampolgarsaga, t.C_DIAKIGAZOLVANYSZAM diakIgazolvanySzam, MAX(cs.C_KILEPESDATUM) kilepesDatum, t.C_BEIRASINAPLOSORSZAM beirasiNaploSorszam ,dbo.fnGetDokumentumTanuloAktualisOsztaly(s.TanuloID) aktualisOsztaly FROM T_TANULO_OSSZES t INNER JOIN #students s ON s.TanuloID = t.ID INNER JOIN @NaploSorszam naploSorszam on naploSorszam.TanuloId=s.TanuloID INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = t.C_TANTERVID INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = t.ID INNER JOIN T_TANULOCSOPORT_OSSZES cs ON s.TanuloID = cs.C_TANULOID AND cs.C_OSZTALYCSOPORTID = @csoportid AND cs.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=f.C_ALLAMPOLGARSAGA AND d.C_TANEVID = f.C_TANEVID AND d.C_INTEZMENYID = f.C_INTEZMENYID GROUP BY s.TanuloID, t.ID, naploSorszam.Sorszam, f.C_NYILVANTARTASISZAM, f.C_OKTATASIAZONOSITO, f.C_TAJSZAM, f.C_ANYJANEVE, f.C_SZULETESIHELY, f.C_SZULETESIDATUM, t.C_MAGANTANULO, t.C_JOGVISZONYATSZUNETELTETO, t.C_SZAKMAIGYAKORLATON, C_SAJATOSNEVELESU, t.C_BEJARO, t.C_SZOCIALISTAMOGATAS, tt.C_NEV, f.C_NYOMTATASINEV, d.C_NAME, t.C_DIAKIGAZOLVANYSZAM, t.C_BEIRASINAPLOSORSZAM ) tbl ORDER BY tanuloNeve /*TANULÓ elérhetőségei */ DECLARE @CimTableTemp TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), CimTipus INT, GondviseloId INT) INSERT INTO @CimTableTemp SELECT TanuloId ,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM ,C_CIMTIPUSA ,C_GONDVISELOID FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportid, 'T') tanulo INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloId INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @TanevId WHERE cim.TOROLT = 'F' AND cim.C_TANEVID = @tanevId DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX)) INSERT INTO @TanuloCimTable SELECT DISTINCT FelhasznaloId ,STUFF(( SELECT DISTINCT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @CimTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND temp.CimTipus = btemp.CimTipus AND GondviseloId IS NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') ,C_NAME FROM @CimTableTemp temp INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = Cimtipus WHERE GondviseloId IS NULL DECLARE @GondViseloCimTable TABLE (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX)) INSERT INTO @GondViseloCimTable SELECT DISTINCT GondviseloId ,STUFF(( SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @CimTableTemp btemp WHERE temp.GondviseloId = btemp.GondviseloId AND temp.CimTipus = btemp.CimTipus AND GondviseloId IS NOT NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') ,C_NAME FROM @CimTableTemp temp INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = Cimtipus WHERE GondviseloId IS NOT NULL DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT) INSERT INTO @EmailCimTableTemp SELECT TanuloId ,C_EMAILCIM ,C_GONDVISELOID FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportid, 'T') tanulo INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId WHERE email.TOROLT = 'F' AND email.C_TANEVID = @tanevId AND LEN(C_EMAILCIM) > 0 DECLARE @EmailCimTanuloTable TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX)) INSERT INTO @EmailCimTanuloTable SELECT DISTINCT FelhasznaloId ,STUFF(( SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @EmailCimTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND btemp.GondviseloId IS NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Email FROM @EmailCimTableTemp temp WHERE GondviseloId IS NULL DECLARE @EmailCimGondviseloTable TABLE (GondviseloId INT, EmailCim NVARCHAR(MAX)) INSERT INTO @EmailCimGondviseloTable SELECT DISTINCT GondviseloId ,STUFF(( SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @EmailCimTableTemp btemp WHERE temp.GondviseloId = btemp.GondviseloId AND btemp.GondviseloId IS NOT NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Email FROM @EmailCimTableTemp temp WHERE GondviseloId IS NOT NULL DECLARE @TelefonTableTemp TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT) INSERT INTO @TelefonTableTemp SELECT TanuloId ,C_TELEFONSZAM ,C_GONDVISELOID FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportid, 'T') tanulo INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId WHERE telefon.TOROLT = 'F' AND telefon.C_TANEVID = @tanevId AND LEN(telefon.C_TELEFONSZAM) > 0 DECLARE @TanuloTelefonTable TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX)) INSERT INTO @TanuloTelefonTable SELECT DISTINCT FelhasznaloId ,STUFF(( SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @TelefonTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND GondviseloId IS NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') FROM @TelefonTableTemp temp WHERE GondviseloId IS NULL DECLARE @GondviseloTelefonTable TABLE (GondviseloId INT, Telefon NVARCHAR(MAX)) INSERT INTO @GondviseloTelefonTable SELECT DISTINCT GondviseloId ,STUFF(( SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10) FROM @TelefonTableTemp btemp WHERE temp.FelhasznaloId = btemp.FelhasznaloId AND GondviseloId IS NOT NULL FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') FROM @TelefonTableTemp temp WHERE GondviseloId IS NOT NULL SELECT s.TanuloID tanuloid ,cim.Cimtipusa cimtipus ,cim.Cim ,email.EmailCim email ,telefon.Telefon telefonszam FROM #students s LEFT JOIN @TanuloCimTable cim ON cim.FelhasznaloId = s.TanuloID LEFT JOIN @EmailCimTanuloTable email ON email.FelhasznaloId = s.TanuloID LEFT JOIN @TanuloTelefonTable telefon ON telefon.FelhasznaloId = s.TanuloID ORDER BY Cimtipusa /* TANULO mulasztása */ DECLARE @Mulasztasok TABLE ( IgazoltE nvarchar(1), Tanulo int, Tipus int) --Félév kezdete DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F') SELECT DATEPART(MONTH,tao.C_DATUM) Honap ,tm.ID Id ,C_IGAZOLT IgazoltE ,tm.C_ORATANULOIID TanuloId ,C_IGAZOLASTIPUSA IgazolasTipus ,C_DATUM Datum ,C_TIPUS Tipus ,C_KESESPERCBEN KesesPercben INTO #mulasztasTmp FROM T_TANULOMULASZTAS_OSSZES tm INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID INNER JOIN #students tanulok ON tanulok.TanuloID = tm.C_ORATANULOIID INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tao.C_OSZTALYCSOPORTID and tanulok.TanuloID = tcs.C_TANULOID AND tcs.TOROLT = 'F' WHERE tm.TOROLT = 'F' AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL)) AND tcs.C_BELEPESDATUM <= tao.C_DATUM AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tao.C_DATUM) AND tao.C_OSZTALYCSOPORTID = @csoportid INSERT INTO @Mulasztasok SELECT 'T', TanuloID, Tipus FROM #students CROSS JOIN (SELECT DISTINCT Id FROM T_DICTIONARYITEMBASE_OSSZES WHERE C_TANEVID = @tanevId AND C_TYPE LIKE 'igazolastipus' AND (@iskolaErdekuSzamit = 1 OR Id <> 1533) ) Tipus (Tipus) --hiányzás --Összes SELECT s.TanuloID tanuloId, cast('mulasztás' as nvarchar(100)) tipus, isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.', isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.', isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', 1 Rendez INTO #MulasztasVegleges FROM #students s LEFT JOIN (SELECT * FROM (SELECT Id, TanuloId, Honap FROM #mulasztasTmp WHERE Tipus = 1500) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv )ni on ni.TanuloId=s.TanuloID LEFT JOIN (SELECT COUNT(Id) Felev, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.TanuloID --igazolt INSERT INTO #MulasztasVegleges SELECT s.TanuloID, 'igazolt', isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.', isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.', isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', 2 Rendez FROM #students s LEFT JOIN (SELECT * FROM (SELECT Id, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'T' AND Tipus = 1500 )ni on ni.TanuloId=s.TanuloID LEFT JOIN (SELECT COUNT(Id) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1500 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.TanuloID --igazolatlan INSERT INTO #MulasztasVegleges SELECT s.TanuloID, 'igazolatlan', isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.', isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.', isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', 4999 Rendez FROM #students s LEFT JOIN (SELECT * FROM (SELECT Id, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'F' AND Tipus = 1500 )ni on ni.TanuloId=s.TanuloID LEFT JOIN (SELECT COUNT(Id) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1500 AND Datum <= @FelevVege GROUP BY TanuloId, IgazolasTipus) felev on felev.TanuloId=s.TanuloID --különböző típusok é IF @isReszletesMulasztasok = 1 BEGIN INSERT INTO #MulasztasVegleges SELECT m.Tanulo tanuloid, '-'+d.c_name tipus, isnull(p.[9],0) '09.', isnull(p.[10],0) '10.', isnull(p.[11],0) '11.', isnull(p.[12],0) '12.', isnull(p.[1],0) '01.', isnull(p.[2],0) '02.', isnull(p.[3],0) '03.', isnull(p.[4],0) '04.', isnull(p.[5],0) '05.', isnull(p.[6],0) '06.', isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', d.id Rendez FROM @Mulasztasok m LEFT JOIN (SELECT * FROM (SELECT TanuloId, Honap, Id, IgazolasTipus, IgazoltE FROM #mulasztasTmp WHERE Tipus = 1500) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv )p ON p.TanuloId=m.Tanulo AND p.igazoltE = m.IgazoltE AND p.IgazolasTipus = m.Tipus LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.id = m.Tipus AND d.TOROLT = 'F' AND d.C_TANEVID = @tanevId LEFT JOIN (SELECT COUNT(Id) Felev, IgazoltE, TanuloId Tanulo, IgazolasTipus FROM #mulasztasTmp WHERE Datum <= @FelevVege AND Tipus = 1500 GROUP BY IgazoltE, TanuloId, IgazolasTipus )felev ON felev.tanulo=m.Tanulo AND felev.igazoltE=m.IgazoltE AND felev.IgazolasTipus=m.Tipus END --KÉSÉS INSERT INTO #MulasztasVegleges SELECT s.TanuloID, 'késés (p)', isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.', isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.', isnull(Felev,0) 'felev', isnull(ni.[9],0)+isnull(ni.[10],0)+isnull(ni.[11],0)+isnull(ni.[12],0)+ isnull(ni.[1],0)+ isnull(ni.[2],0)+isnull(ni.[3],0)+isnull(ni.[4],0)+isnull(ni.[5],0)+isnull(ni.[6],0) 'osszesen', 5000 Rendez FROM #students s LEFT JOIN (SELECT * FROM (SELECT KesesPercben, Honap, TanuloId FROM #mulasztasTmp WHERE Tipus = 1499) a PIVOT (SUM(KesesPercben) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv)ni on ni.TanuloId=s.TanuloID LEFT JOIN (SELECT SUM(KesesPercben) Felev, TanuloId FROM #mulasztasTmp WHERE Tipus = 1499 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.TanuloID --igazolt INSERT INTO #MulasztasVegleges select s.TanuloID, '* igazolt (p)', isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.', isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.', isnull(Felev,0) 'felev', isnull(ni.[9],0)+isnull(ni.[10],0)+isnull(ni.[11],0)+isnull(ni.[12],0)+ isnull(ni.[1],0)+ isnull(ni.[2],0)+isnull(ni.[3],0)+isnull(ni.[4],0)+isnull(ni.[5],0)+isnull(ni.[6],0)'osszesen', 5001 Rendez FROM #students s LEFT JOIN (SELECT * FROM (SELECT KesesPercben, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (SUM(KesesPercben) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'T' AND Tipus = 1499)ni on ni.TanuloId=s.TanuloID LEFT JOIN (SELECT SUM(KesesPercben) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1499 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.TanuloID --igazolatlan INSERT INTO #MulasztasVegleges SELECT s.TanuloID, '* igazolatlan (p)', isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.', isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.', isnull(Felev,0) 'felev', isnull(ni.[9],0)+isnull(ni.[10],0)+isnull(ni.[11],0)+isnull(ni.[12],0)+ isnull(ni.[1],0)+ isnull(ni.[2],0)+isnull(ni.[3],0)+isnull(ni.[4],0)+isnull(ni.[5],0)+isnull(ni.[6],0) 'osszesen', 5002 Rendez from #students s LEFT JOIN (SELECT * FROM (SELECT KesesPercben, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (SUM(KesesPercben) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'F' AND Tipus = 1499)ni on ni.TanuloId=s.TanuloID LEFT JOIN (SELECT SUM(KesesPercben) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1499 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.TanuloID SELECT Mulasztas.tanuloid, Mulasztas.tipus, Mulasztas.[09.], Mulasztas.[10.], Mulasztas.[11.], Mulasztas.[12.], Mulasztas.[01.], Mulasztas.[02.], Mulasztas.[03.], Mulasztas.[04.], Mulasztas.[05.], Mulasztas.[06.], mulasztas.felev felev, ISNULL(Mulasztas.osszesen,0) Osszesen, mulasztas.Rendez FROM #MulasztasVegleges Mulasztas ORDER BY Rendez DECLARE @gondviselok TABLE (Id INT) INSERT INTO @gondviselok SELECT g.ID FROM #students s LEFT JOIN T_GONDVISELO_OSSZES g ON g.C_TANULOID=s.TanuloID /*gondviselő elérhetőségei */ SELECT DISTINCT s.TanuloID ,g.C_NEV ,cim.Cimtipusa C_CIMTIPUSA ,cim.cim C_OSSZETETTCIM ,telefon.telefon C_TELEFONSZAM ,email.emailcim C_EMAILCIM FROM #students s INNER JOIN T_GONDVISELO_OSSZES g ON g.C_TANULOID = s.TanuloID LEFT JOIN @EmailCimGondviseloTable email ON email.GondviseloId = g.ID LEFT JOIN @GondviseloTelefonTable telefon ON telefon.GondviseloId = g.ID LEFT JOIN @GondViseloCimTable cim ON cim.GondviseloId = g.ID WHERE g.Torolt = 'F' ORDER BY Cimtipusa /*TANULÓ osztályzatai*/ SELECT Datum ,TipusId ,ErtekelesSzoveg ,ErtekelesOsztalyzatId ,ErtekelesOsztalyzatValue ,ErtekelesOsztalyzatNev ,ErtekelesSzazalek ,MagatartasOsztalyzatId ,MagatartasOsztalyzatNev ,MagatartasSzoveg ,MagatartasErtekId ,MagatartasErtek ,SzorgalomOsztalyzatId ,SzorgalomOsztalyzatNev ,SzorgalomSzoveg ,SzorgalomErtekId ,SzorgalomErtek ,TanuloId ,OsztalyCsoportId ,TantargyId ,TantargyNevZarojellel ,TantargyNev ,TantargyNevNyomtatvanyban ,TargyKategoriaId ,FotargyE ,FotargyId ,Altantargy ,ErtekelesTema ,Jeloles ,JelolesAndErtekelesTema ,isMagatartasSzorgalom INTO #ErtekelesekTemp FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @csoportId, DEFAULT, 0, 1, DEFAULT) WHERE OsztalyCsoportId = @csoportId 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 * 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 ,TantargyId ,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) Ertekeles ,TargyKategoriaId Rendez FROM #ErtekelesekTemp WHERE isMagatartasSzorgalom = 'F' AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL) AND TipusId = 1518 UNION ALL SELECT 15 Honap ,TanuloId ,TantargyId ,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + Jeloles ,TargyKategoriaId Rendez FROM #ErtekelesekTemp WHERE isMagatartasSzorgalom = 'F' AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL) AND TipusId = 1519 UNION ALL SELECT 16 Honap ,TanuloId ,TantargyId ,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + Jeloles ,TargyKategoriaId Rendez FROM #ErtekelesekTemp WHERE isMagatartasSzorgalom = 'F' AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL) AND TipusId = 1520 )jegyek SELECT DISTINCT Honap ,TanuloId ,TantargyId ,STUFF(( SELECT ', ' + CAST(Ertekeles AS nvarchar(max)) FROM #jegyekTMP bj WHERE j.TanuloId = bj.TanuloId AND j.TantargyId = bj.TantargyId AND j.Honap = bj.Honap FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles ,Rendez , 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 = 7 THEN 13 WHEN Honap = 8 THEN 14 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 #jegyek FROM #jegyekTMP j SELECT TanuloId TanuloId ,C_NEV Tipus ,Rendez ,[9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16] FROM (SELECT TanuloId, Ertekeles, Honap, TantargyId, Rendez FROM #jegyek) j INNER JOIN (SELECT Id, C_NEV FROM T_TANTARGY_OSSZES) t ON t.Id = TantargyId PIVOT (MAX(Ertekeles) FOR Honap IN ([9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16])) piv /*Szöveges minősítések*/ SELECT a.tanuloId ,a.Honap ,a.Tantargy ,a.Ertekeles ,a.Tipus FROM ( SELECT s.TanuloID tanuloId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #students s LEFT JOIN (SELECT TanuloId tanuloId ,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, Datum))+'. hónap]' Honap ,IIF(TantargyNev <> TantargyNevNyomtatvanyban AND TantargyNevNyomtatvanyban IS NOT NULL, TantargyNevNyomtatvanyban + ' (' + TantargyNev + ')', TantargyNev) Tantargy ,ErtekelesSzoveg + Jeloles Ertekeles ,ErtekelesTipusDictionary.C_NAME Tipus ,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5 WHEN DATEPART(MONTH, Datum) = 2 THEN 6 WHEN DATEPART(MONTH, Datum) = 3 THEN 7 WHEN DATEPART(MONTH, Datum) = 4 THEN 8 WHEN DATEPART(MONTH, Datum) = 5 THEN 9 WHEN DATEPART(MONTH, Datum) = 6 THEN 10 WHEN DATEPART(MONTH, Datum) = 7 THEN 11 WHEN DATEPART(MONTH, Datum) = 8 THEN 12 WHEN DATEPART(MONTH, Datum) = 9 THEN 1 WHEN DATEPART(MONTH, Datum) = 10 THEN 2 WHEN DATEPART(MONTH, Datum) = 11 THEN 3 WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap FROM #ErtekelesekTemp ErtekelesTemp INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @tanevId WHERE ErtekelesSzoveg IS NOT NULL ) szoveges on szoveges.TANULOID=s.TanuloID )a ORDER BY RendezHonap, Tantargy SELECT COUNT(TanuloId) TanulokSzama ,Osztaly FROM #students GROUP BY Osztaly --értékelésekhez tartozó feljegyzések SELECT DISTINCT TanuloId ,STUFF((SELECT DISTINCT ', ' + JelolesAndErtekelesTema FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE LEN(JelolesAndErtekelesTema) > 0 AND ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId AND (ErtekelesTemavalOsszefuz.ErtekelesSzoveg IS NULL AND ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL) FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,'') JelolesTemaval FROM #ErtekelesekTemp ErtekelesTemaval WHERE LEN(JelolesAndErtekelesTema) > 0 AND (ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL) DROP TABLE #students END GO