SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('[dbo].[sp_GetOsztalyNaplo]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_GetOsztalyNaplo] END GO CREATE PROCEDURE [dbo].[sp_GetOsztalyNaplo] @intezmenyId INT, @tanevId INT, @osztalyId INT, @isSzovegesNaplo BIT = 0, @iskolaErdekuSzamit BIT, @fuggolegesTantargyak BIT, @aktivTanevId INT, @isReszletesMulasztasok BIT, @isEgyebFoglalkozasok BIT, @isEllenorzo BIT = 0 AS BEGIN SET NOCOUNT ON; 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 = @osztalyId) DECLARE @VegzosUtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND C_NAPTIPUSA = 1402 AND TOROLT = 'F') DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F') DECLARE @EvVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1395 AND C_TANEVID=@tanevId AND TOROLT = 'F') DECLARE @VizsgaltNap DATE IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNapTanevRendje) BEGIN IF (GETDATE() <= @ElsoNapTanevRendje) BEGIN SET @VizsgaltNap = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId) END ELSE BEGIN SET @VizsgaltNap = CONVERT(DATE, GETDATE()) END END ELSE BEGIN SET @VizsgaltNap = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNapTanevRendje >= CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNapTanevRendje <= CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId) END DECLARE @NapSorszamTemp TABLE ( Datum DATE ) INSERT INTO @NapSorszamTemp EXEC sp_GetDokumentumTanitasiNapokSorszama @tanevId = @tanevId, @osztalyId = @osztalyId DECLARE @NapSorszam TABLE (Datum DATE, Sorszam NVARCHAR(4)) INSERT INTO @NapSorszam SELECT Datum ,CAST(DENSE_RANK() OVER(ORDER BY Datum) AS NVARCHAR(4)) FROM @NapSorszamTemp WHERE Datum <= IIF(@isVegzos = 'T', @VegzosUtolsoNap, ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)) DECLARE @NaploSorszam TABLE ( TanuloId INT ,Sorszam INT ) INSERT INTO @NaploSorszam EXEC [sp_GetDokumentumTanuloNaploSorszam] @osztalyId = @osztalyId CREATE TABLE #students (ID INT PRIMARY KEY, BelepesDatum DATE, KilepesDatum DATE, NaploSorszam INT) INSERT INTO #students SELECT t.TanuloId ,BelepesDatum ,ISNULL(KilepesDatum, GETDATE()) ,nsz.Sorszam FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') t INNER JOIN @NaploSorszam nsz ON nsz.TanuloId = t.TanuloId SELECT DATEPART(MONTH, Datum) Honap ,TantargyId Id ,Igazolt IgazoltE ,TanuloId TanuloId ,IgazolasTipusa IgazolasTipus ,Datum Datum ,Tipusa Tipus ,KesesPercben KesesPercben ,HetSorszama HetSorszama ,Oraszam Oraszam ,CAST(DATEPART(MONTH, Datum) AS NVARCHAR(10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') ElmeletGyakorlat ,C_GYAKORLATI isGyakorlat INTO #mulasztasTmp FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @osztalyId, @iskolaErdekuSzamit, DEFAULT, DEFAULT, DEFAULT, DEFAULT) TanulokMulasztasai INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_OSZTALYCSOPORTID = TanulokMulasztasai.OsztalyCsoportId AND TanuloCsoport.C_TANULOID = TanulokMulasztasai.TanuloId AND TanuloCsoport.C_BELEPESDATUM <= TanulokMulasztasai.Datum AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= TanulokMulasztasai.Datum) AND TanuloCsoport.TOROLT = 'F' SELECT CAST(SUM(IIF(IgazoltE = 'T', 1, 0)) AS VARCHAR(5)) + '/' + CAST(SUM(IIF(IgazoltE = 'F', 1, 0)) AS VARCHAR(5)) HetiMulasztas ,HetSorszama ,TanuloId INTO #HetiMulasztasok FROM #mulasztasTmp GROUP BY HetSorszama, TanuloId -- Naplo fooldal CREATE TABLE #osztalycsoportok (OsztalyCsoportId INT PRIMARY KEY) INSERT INTO #osztalycsoportok (OsztalyCsoportId) SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyId, @tanevId) CREATE TABLE #OsztalyVagyTanoraiCsoport (Id INT) INSERT INTO #OsztalyVagyTanoraiCsoport SELECT ID FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId) DECLARE @MaxOraszam INT = (SELECT ISNULL(MAX(IIF(C_ORASZAM = 0, 1, C_ORASZAM)), 1) FROM T_TANITASIORA_OSSZES WHERE C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM #osztalycsoportok) AND TOROLT = 'F') DECLARE @MinOraszam INT = (SELECT ISNULL(MIN(IIF(C_ORASZAM = 0, 0, 1)), 1) FROM T_TANITASIORA_OSSZES WHERE C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM #osztalycsoportok) AND TOROLT = 'F') SELECT DISTINCT @osztalyId OsztalyId ,ocs.C_NEV OsztalyNev ,o.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes ,o.C_OSZTALYFONOKID PartnerID ,ofo.C_NYOMTATASINEV Osztalyfonok ,i.C_IGAZGATONEVE IntezmenyVezeto ,i.C_NEV IntezmenyNeve ,i.C_VAROS IntezmenyVaros ,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime ,i.C_OMKOD IntezmenyOMKod ,dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOMEGNYITASA) NaploMegnyitasanakDatuma ,dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOZARASA) NaploZarasanakDatuma ,o.C_OSZTALYNAPLOZARASA NaplozarasDateFormat ,(SELECT COUNT(Id) FROM #students) TanulokSzama ,(SELECT MAX(CAST(Sorszam AS INT)) FROM @NapSorszam) TanitasiNapokSzama ,@MaxOraszam MaxOraszam ,@MinOraszam MinOraszam FROM T_OSZTALYCSOPORT_OSSZES ocs INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt='F' LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID=ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.Torolt = 'F' WHERE ocs.ID = @osztalyId -- Tanarok IF @isEllenorzo = 0 BEGIN SELECT targy.C_NEV TargyNev ,tanar.C_NYOMTATASINEV TanarNev ,targykategoria.C_ORDER FROM T_FELHASZNALO_OSSZES tanar INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = tanar.ID and f.TOROLT='F' INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID and targy.TOROLT='F' INNER JOIN #osztalycsoportok ocs ON ocs.OsztalyCsoportId = f.C_OSZTALYCSOPORTID INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA INNER JOIN T_DICTIONARYITEMBASE_OSSZES targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND targykategoria.TOROLT = 'F' AND targykategoria.C_TANEVID = @tanevId WHERE tanar.TOROLT = 'F' AND f.TOROLT = 'F' AND tanar.C_INTEZMENYID = @intezmenyId AND tanar.c_tanevId = @tanevId GROUP BY C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV ORDER BY C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV END ELSE BEGIN SELECT DISTINCT Tanulok.Id TanuloId ,Tantargy.C_NEV TargyNev ,Tanar.C_NYOMTATASINEV TanarNev ,C_ORDER FROM #students Tanulok INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = Tanulok.Id AND TanuloCsoport.TOROLT = 'F' AND @VizsgaltNap BETWEEN C_BELEPESDATUM AND COALESCE(C_KILEPESDATUM, @UtolsoNapTanevRendje, @UtolsoNapTanev) INNER JOIN T_FOGLALKOZAS_OSSZES Foglalkozas ON Foglalkozas.C_OSZTALYCSOPORTID = TanuloCsoport.C_OSZTALYCSOPORTID AND Foglalkozas.TOROLT = 'F' INNER JOIN T_FELHASZNALO_OSSZES Tanar ON Tanar.Id = Foglalkozas.C_TANARID INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = Foglalkozas.C_TANTARGYID INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES TargyKategoria ON TargyKategoria.ID = Tantargy.C_TARGYKATEGORIA INNER JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoria_order ON TargyKategoria.ID = TargyKategoria_order.ID AND TargyKategoria_order.TOROLT = 'F' AND TargyKategoria_order.C_TANEVID = @tanevId ORDER BY C_ORDER END -- Orarend EXEC sp_GetOrarendOsztalyonkent @intezmenyId, @tanevID, @osztalyid, @aktivTanevId, @isEgyebFoglalkozasok -- Oralatogatasok SELECT dbo.fnGetDokumentumDatumFormatum(T_ORALATOGATAS_OSSZES.C_DATUM) DATUM ,TANITASIORA.C_ORASZAM ORASZAM ,TARGY.C_NEV TARGYNEV ,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV LATOGATO ,T_ORALATOGATAS_OSSZES.C_ORALATOGATOBEOSZTASA LATOGATOBEOSZTAS ,T_ORALATOGATAS_OSSZES.C_MEGJEGYZES ESZREVETEL INTO #Oralatogatas FROM T_ORALATOGATAS_OSSZES INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_ORALATOGATAS_OSSZES.C_ERTEKELOID INNER JOIN (SELECT ID, C_TANTARGYID, C_ORASZAM, C_OSZTALYCSOPORTID FROM T_TANITASIORA_OSSZES ) TANITASIORA ON TANITASIORA.ID = T_ORALATOGATAS_OSSZES.C_MEGTARTOTTORAID INNER JOIN T_TANTARGY_OSSZES TARGY ON TARGY.ID = TANITASIORA.C_TANTARGYID INNER JOIN #osztalycsoportok ocs ON ocs.OsztalyCsoportId = C_OSZTALYCSOPORTID WHERE T_ORALATOGATAS_OSSZES.TOROLT='F' AND T_ORALATOGATAS_OSSZES.c_tanevId = @tanevId AND T_ORALATOGATAS_OSSZES.C_INTEZMENYID = @intezmenyId ORDER BY T_ORALATOGATAS_OSSZES.C_DATUM, TANITASIORA.C_ORASZAM IF ((SELECT COUNT(1) FROM #Oralatogatas) = 0) BEGIN SELECT NULL DATUM, NULL ORASZAM, NULL TARGYNEV, NULL LATOGATO, NULL LATOGATOBEOSZTAS, '' ESZREVETEL END ELSE BEGIN SELECT DATUM, ORASZAM, TARGYNEV, LATOGATO, LATOGATOBEOSZTAS, ESZREVETEL FROM #Oralatogatas ORDER BY DATUM END -- Naploellenorzesek SELECT DISTINCT dbo.fnGetDokumentumDatumFormatum(C_ELLENORZESDATUMA) ELLENORZESDATUMA ,ELLENORZO.C_NYOMTATASINEV ELLENORZOSZEMELY ,T_NAPLOELLENORZES_OSSZES.C_ESZREVETEL ESZREVETEL INTO #NaploEllenorzes FROM T_NAPLOELLENORZES_OSSZES INNER JOIN T_FELHASZNALO_OSSZES ELLENORZO ON ELLENORZO.ID = T_NAPLOELLENORZES_OSSZES.C_ELLENORZOSZEMELYID WHERE C_OSZTALYID = @osztalyId AND T_NAPLOELLENORZES_OSSZES.TOROLT = 'F' AND T_NAPLOELLENORZES_OSSZES.c_tanevId=@tanevId IF ((SELECT COUNT(1) FROM #NaploEllenorzes) = 0) BEGIN SELECT NULL ELLENORZESDATUMA, NULL ELLENORZOSZEMELY, NULL ESZREVETEL END ELSE BEGIN SELECT ELLENORZESDATUMA, ELLENORZOSZEMELY, ESZREVETEL FROM #NaploEllenorzes END /* Napló */ CREATE TABLE #OraSorszamTemp (TanitasioraId INT, OraSorszam INT) CREATE TABLE #OraSorszam (TanitasioraId INT PRIMARY KEY, OraSorszam INT) DECLARE csoport_cursor CURSOR FOR SELECT OsztalyCsoportId FROM #osztalycsoportok DECLARE @ocsId int OPEN csoport_cursor FETCH NEXT FROM csoport_cursor INTO @ocsId WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO #OraSorszamTemp EXEC sp_GetOraSorszamByOsztaly @osztalyCsoportId = @ocsId, @datum = @UtolsoNapTanevRendje, @intezmenyId = @intezmenyId, @tanevId = @tanevId FETCH NEXT FROM csoport_cursor INTO @ocsId END CLOSE csoport_cursor DEALLOCATE csoport_cursor INSERT INTO #OraSorszam SELECT DISTINCT * FROM #OraSorszamTemp SELECT tao.Id TanitasioraId ,tao.C_DATUM Datum ,tao.C_ORASZAM Oraszam ,pedagogus.ID PedagogusId ,IIF(C_MEGTARTOTT = 'T', 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') + IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás: ' + helyettesito.C_NYOMTATASINEV +')', '') + IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), '(Helyettesitve: ' + helyettesito.C_NYOMTATASINEV +') ', '' ) Tema ,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam),'-') +'.: ' + IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás, ' + helyettesito.C_NYOMTATASINEV + ') ', '') + IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), '(Helyettesitve: ' + helyettesito.C_NYOMTATASINEV +') ', '' ) + REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), '') ,'Elmaradt') TemaOraSzammal ,tao.C_HETNAPJA HetNapja ,nh.C_HETSORSZAMA HetSorszama ,C_MEGTARTOTT Megtartott ,tao.C_TANTARGYID TantargyId ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) Tantargynev ,tao.C_OSZTALYCSOPORTID OsztalyCsoportId ,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, IIF(LEN(C_NEVNYOMTATVANYBAN) + LEN(tantargy.C_NEV) < 90, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', C_NEVNYOMTATVANYBAN), tantargy.C_NEV) + '-' + CHAR(13) + CHAR(10) + pedagogus.C_NYOMTATASINEV TantargyPedagogussal INTO #megtartottOrak FROM T_TANITASIORA_OSSZES tao LEFT 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 * FROM #OraSorszam) oraSorszam ON oraSorszam.TanitasioraId = tao.Id INNER JOIN T_NAPTARIHET_OSSZES nh ON tao.C_DATUM BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F' WHERE tao.C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM #osztalycsoportok) AND tao.TOROLT = 'F' DECLARE @HetUtolsoNapjaMegtartottOra INT = (SELECT IIF(MAX(HetNapja) IS NULL OR MAX(HetNapja) <= 1412 , 1412, MAX(HetNapja)) FROM #megtartottOrak) DECLARE @HetUtolsoNapjaTanevendje INT = (SELECT ISNULL(MAX(C_HETNAPJA), 1412) FROM @NapSorszam NapSorszam INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = NapSorszam.Datum AND NaptariNap.C_TANEVID = @tanevId ) DECLARE @HetUtolsoNapja INT = (SELECT IIF(@HetUtolsoNapjaMegtartottOra >= @HetUtolsoNapjaTanevendje, @HetUtolsoNapjaMegtartottOra, @HetUtolsoNapjaTanevendje)) SELECT nh.C_HETSORSZAMA ,dbo.fnGetDokumentumDatumFormatum(MIN(nn.C_NAPDATUMA)) ,dbo.fnGetDokumentumDatumFormatum(MAX(nn.C_NAPDATUMA)) FROM T_NAPTARINAP_OSSZES nn INNER JOIN T_NAPTARIHET_OSSZES nh ON nn.C_NAPDATUMA BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F' 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 @HetUtolsoNapja AND nn.TOROLT='F' AND nn.C_TANEVID = @tanevId GROUP BY nh.C_HETSORSZAMA ORDER BY MIN(nn.C_NAPDATUMA) CREATE TABLE #OsszesOra ( Datum DateTime ,FormatDate NVARCHAR(100) ,Oraszam INT ,HetSorszama INT ,HetNapja NVARCHAR(100) ,Megjegyzes NVARCHAR(1000) ,Sorszam NVARCHAR(30) ) INSERT INTO #OsszesOra SELECT Datum ,FormatDate ,Oraszam ,HetSorszama ,HetNapja ,IIF(RIGHT(Megjegyzes, 1) = ',', LEFT(Megjegyzes, LEN(Megjegyzes) - 1), Megjegyzes) Megjegyzes ,Sorszam FROM( SELECT C_NAPDATUMA Datum ,dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA) FormatDate ,oraszam Oraszam ,nh.C_HETSORSZAMA HetSorszama ,AlapHetnapja.C_NAME HetNapja , ISNULL(trNaptipus.C_NAME + ',', '') + IIF(LEN(ISNULL(tr.C_MEGJEGYZES, '')) = 0, '', ' ' + tr.C_MEGJEGYZES + ',') + IIF(LEN(ISNULL(osztalyCsoportTanevRendje.Megjegyzes, '')) = 0, '', ' ' + osztalyCsoportTanevRendje.Megjegyzes + ',') + IIF(nn.C_HETNAPJA <> nn.C_ALAPHETNAPJA, ' (' + Hetnapja.C_NAME +')', '') Megjegyzes ,ISNULL(Sorszam,'-') Sorszam FROM T_NAPTARINAP_OSSZES nn INNER JOIN T_NAPTARIHET_OSSZES nh ON nn.C_NAPDATUMA BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F' LEFT JOIN @NapSorszam sorszam ON sorszam.Datum = nn.C_NAPDATUMA LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_TANEVID = nn.C_TANEVID AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' LEFT JOIN ( SELECT C_DATUM, ISNULL('(' + HetNapja.C_NAME + ')', '') + ISNULL(C_MEGJEGYZES, '') Megjegyzes FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.Id = ocstr.C_TANEVRENDJEID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES HetNapja ON HetNapja.ID = tr.C_HETNAPJA AND HetNapja.C_TANEVID = @tanevId WHERE C_OSZTALYCSOPORTID = @osztalyId AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' ) osztalyCsoportTanevRendje ON osztalyCsoportTanevRendje.C_DATUM = nn.C_NAPDATUMA LEFT JOIN T_DICTIONARYITEMBASE_OSSZES trNaptipus ON trNaptipus.ID = tr.C_NAPTIPUSA AND trNaptipus.C_TANEVID = @tanevId AND tr.C_NAPTIPUSA <> 1385 LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AlapHetnapja ON AlapHetnapja.Id = nn.C_ALAPHETNAPJA AND AlapHetnapja.C_TANEVID = @tanevId LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Hetnapja ON Hetnapja.Id = nn.C_HETNAPJA AND Hetnapja.C_TANEVID = @tanevId CROSS JOIN (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17),(18),(19),(20),(21),(22),(23),(24),(25)) oraszam(oraszam) WHERE nn.C_TANEVID = @tanevId AND nn.TOROLT = 'F' AND nn.C_NAPDATUMA <= ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev) AND oraszam <= @MaxOraszam AND nn.C_HETNAPJA BETWEEN 1407 AND @HetUtolsoNapja ) NapAdatok IF (@MinOraszam > 0) BEGIN DELETE FROM #OsszesOra WHERE Oraszam = 0 END IF @isSzovegesNaplo = 0 BEGIN /* NORMÁL OSZTÁLYNAPLÓ */ DECLARE @selectList nvarchar(MAX), @pivotList nvarchar(MAX) SELECT DISTINCT tao.C_DATUM Datum ,t.C_NYOMTATASINEV + ' [' + STUFF(( SELECT ', ' + CAST(btao.C_ORASZAM AS VARCHAR(3)) + IIF(tm.C_TIPUS = 1499, '(k)', '') FROM T_TANULOMULASZTAS_OSSZES tm INNER JOIN T_TANITASIORA_OSSZES btao ON btao.ID = tm.C_TANITASIORAKID INNER JOIN #students s ON s.ID = tm.C_ORATANULOIID INNER JOIN #osztalycsoportok ocs ON ocs.OsztalyCsoportId = btao.C_OSZTALYCSOPORTID WHERE tao.C_DATUM = btao.C_DATUM AND m.C_ORATANULOIID = tm.C_ORATANULOIID AND tm.TOROLT = 'F' AND tm.c_tanevId = @tanevId AND (@iskolaErdekuSzamit = 1 OR (tm.C_IGAZOLASTIPUSA <> 1533 OR tm.C_IGAZOLASTIPUSA IS NULL)) AND btao.TOROLT = 'F' AND tm.C_TIPUS IN (1499, 1500) ORDER BY btao.C_NAPTARINAPID, btao.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 INTO #hianyzasokTMP FROM T_TANITASIORA_OSSZES tao INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = tao.ID INNER JOIN #osztalycsoportok cs ON cs.OsztalyCsoportId = tao.C_OSZTALYCSOPORTID INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID INNER JOIN #students s ON s.ID = m.C_ORATANULOIID WHERE m.TOROLT = 'F' AND m.c_tanevId = @tanevId AND m.C_TIPUS IN (1499, 1500) AND tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM #OsztalyVagyTanoraiCsoport) AND (@iskolaErdekuSzamit = 1 OR (m.C_IGAZOLASTIPUSA <> 1533 OR m.C_IGAZOLASTIPUSA IS NULL)) AND tao.TOROLT = 'F' GROUP BY tao.C_DATUM, C_ORATANULOIID, C_NYOMTATASINEV SELECT Datum ,STUFF(( SELECT CHAR(13) + CHAR(10) + Hianyzas FROM #hianyzasokTMP bHianyzasok WHERE Hianyzasok.Datum = bHianyzasok.Datum FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,2,'') AS Hianyzas INTO #hianyzasok FROM #hianyzasokTMP Hianyzasok SELECT DISTINCT Datum ,HetSorszama ,HetNapja ,Oraszam ,STUFF((SELECT CAST(bmto.TantargyNev AS VARCHAR(max)) + CHAR(13) + CHAR(10) FROM #megtartottOrak bmto WHERE bmto.Datum = mto.Datum AND bmto.Oraszam = mto.Oraszam FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Tantargy INTO #Orarend FROM #megtartottOrak mto SELECT DISTINCT Datum ,@MinOraszam Oraszam ,TantargyPedagogussal ,STUFF((SELECT DISTINCT CAST(bmto.TemaOraSzammal AS VARCHAR(max)) + CHAR(13) + CHAR(10) FROM #megtartottOrak bmto WHERE bmto.Datum = mto.Datum AND bmto.TantargyPedagogussal = mto.TantargyPedagogussal FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') Tema INTO #1nap1TantargyTobbOra FROM #megtartottOrak mto DECLARE @tantargyakNevvel NVARCHAR(MAX) SELECT @tantargyakNevvel = ISNULL(@tantargyakNevvel + ', ', '') + '[' + TantargyPedagogussal + ']' FROM (SELECT DISTINCT TantargyPedagogussal, C_TARGYKATEGORIA FROM #megtartottOrak m INNER JOIN T_TANTARGY_OSSZES t ON t.Id = m.TantargyId ) t ORDER BY C_TARGYKATEGORIA DECLARE @sql NVARCHAR(MAX) SET @sql = ' SELECT Datum ,Oraszam , ' + @tantargyakNevvel +' INTO #naplo FROM #1nap1TantargyTobbOra PIVOT (MAX(Tema) FOR TantargyPedagogussal IN (' + @tantargyakNevvel + ')) piv SELECT DISTINCT OsszesOra.FormatDate C_NAPDATUMA ,Hianyzas Mulasztas ,OsszesOra.Megjegyzes Megjegyzés ,OsszesOra.Oraszam ORASZAM ,NULL T1ID ,NULL T2ID ,NULL T3ID ,Orarend.Tantargy TANTARGY ,OsszesOra.HetSorszama C_HETSORSZAMA ,OsszesOra.HetNapja C_HETNAPJA_DNAME ,OsszesOra.Sorszam NapSorszama ,' + @tantargyakNevvel + ' FROM #OsszesOra OsszesOra LEFT JOIN #Orarend Orarend ON Orarend.Datum = OsszesOra.Datum AND Orarend.Oraszam = OsszesOra.Oraszam LEFT JOIN #naplo Naplo ON Naplo.Datum = OsszesOra.Datum AND Naplo.Oraszam = OsszesOra.Oraszam LEFT JOIN #hianyzasok Hianyzasok ON Hianyzasok.Datum = OsszesOra.Datum ORDER BY OsszesOra.FormatDate, Oraszam ' IF @sql IS NULL BEGIN SELECT NULL C_NAPDATUMA ,NULL Mulasztas ,NULL Megjegyzés ,NULL ORASZAM ,NULL T1ID ,NULL T2ID ,NULL T3ID ,NULL TANTARGY ,NULL C_HETSORSZAMA ,NULL C_HETNAPJA_DNAME ,NULL NapSorszama END ELSE BEGIN EXEC sp_executesql @sql END DROP TABLE #1nap1TantargyTobbOra DROP TABLE #OsszesOra DROP TABLE #hianyzasokTMP DROP TABLE #hianyzasok DROP TABLE #Orarend END -- NORMÁL OSZTÁLYNAPLÓ ELSE BEGIN -- SZÖVEGES OSZTÁLYNAPLÓ SELECT OsszesOra.Datum C_NAPDATUMA ,OsszesOra.HetNapja Napneve ,OsszesOra.Megjegyzes C_MEGJEGYZES ,nh.C_HETKEZDONAPJA C_HETKEZDONAPJA ,nh.C_HETUTOLSONAPJA C_HETUTOLSONAPJA ,OsszesOra.HetSorszama C_HETSORSZAMA ,OsszesOra.Oraszam OraSorszam ,OsszesOra.Sorszam Napszam ,Tantargynev Tantargy ,PedagogusNev Tanar ,Tema Oraanyaga ,OraSorszam C_ORAEVESSORSZAM INTO #szoveges FROM #OsszesOra OsszesOra LEFT JOIN #megtartottOrak mto ON mto.Datum = OsszesOra.Datum AND OsszesOra.Oraszam = mto.Oraszam INNER JOIN T_NAPTARIHET_OSSZES nh ON OsszesOra.Datum BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId and nh.torolt='F' SELECT DISTINCT dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA) C_NAPDATUMA ,Napneve ,C_MEGJEGYZES ,C_HETKEZDONAPJA ,C_HETUTOLSONAPJA ,C_HETSORSZAMA ,OraSorszam ,Napszam , STUFF((SELECT CAST(bszov.TANTARGY AS VARCHAR(max)) + CHAR(13) + CHAR(10) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.ORASORSZAM=szov.ORASORSZAM and bszov.napszam=szov.napszam FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') TANTARGY , STUFF((SELECT CAST(bszov.TANAR AS VARCHAR(max)) + CHAR(13) + CHAR(10) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.ORASORSZAM=szov.ORASORSZAM and bszov.napszam=szov.napszam FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') TANAR , STUFF((SELECT CAST(bszov.ORAANYAGA AS VARCHAR(max)) + CHAR(13) + CHAR(10) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.ORASORSZAM=szov.ORASORSZAM and bszov.napszam=szov.napszam FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') ORAANYAGA , STUFF((SELECT CAST(bszov.C_ORAEVESSORSZAM AS VARCHAR(max)) + CHAR(13) + CHAR(10) FROM #szoveges bszov WHERE bszov.C_NAPDATUMA=szov.C_NAPDATUMA and bszov.ORASORSZAM=szov.ORASORSZAM and bszov.napszam=szov.napszam FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,0,'') OraEvesSorszama FROM #szoveges szov ORDER BY dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA), orasorszam /*Hiányzások*/ SELECT NapiMulasztas.HetSorszama ,TanuloNeve ,NapiMulasztas.TanuloId ,MAX(Hetfo) Hetfo ,MAX(Kedd) Kedd ,MAX(Szerda) Szerda ,MAX(Csutortok) Csutortok ,MAX(Pentek) Pentek ,MAX(Szombat) Szombat ,HetiMulasztas FROM ( SELECT HetSorszama ,TanuloNeve ,TanuloId ,[1408] Hetfo ,[1409] Kedd ,[1410] Szerda ,[1411] Csutortok ,[1412] Pentek ,[1413] Szombat FROM ( SELECT DISTINCT HetSorszama ,C_NYOMTATASINEV TanuloNeve ,TanuloId ,Datum ,C_HETNAPJA Hetnapja ,'[' + STUFF(( SELECT ', ' + CAST(MulasztasokBelso.Oraszam AS VARCHAR(3)) + IIF(MulasztasokBelso.Tipus = 1499, '(k)', '') FROM #mulasztasTmp MulasztasokBelso WHERE MulasztasokBelso.Datum = MulasztasokKulso.Datum AND MulasztasokBelso.TanuloId = MulasztasokKulso.TanuloId ORDER BY Datum, Oraszam FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 2, '') + '] ' + CAST(SUM(IIF(MulasztasokKulso.IgazoltE = 'T', 1, 0)) AS VARCHAR(5)) + '/' + CAST(SUM(IIF(MulasztasokKulso.IgazoltE = 'F', 1, 0)) AS VARCHAR(5)) Hianyzas FROM #mulasztasTmp MulasztasokKulso INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = MulasztasokKulso.TanuloId INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = MulasztasokKulso.Datum AND NaptariNap.C_TANEVID = @tanevId GROUP BY Hetsorszama, C_NYOMTATASINEV, TanuloId, Datum, C_HETNAPJA, TanuloId ) OsszefuzottMulasztasok PIVOT (MAX(Hianyzas) FOR HetNapja IN ([1408], [1409], [1410], [1411], [1412], [1413])) piv ) NapiMulasztas INNER JOIN #HetiMulasztasok HetiMulasztasok ON HetiMulasztasok.HetSorszama = NapiMulasztas.HetSorszama AND HetiMulasztasok.TanuloId = NapiMulasztas.TanuloId GROUP BY NapiMulasztas.HetSorszama,TanuloNeve,NapiMulasztas.TanuloId, HetiMulasztas END --SZÖVEGES OSZTÁLYNAPLÓ /*TANULÓ adatai*/ SELECT DISTINCT tanuloID ,sorszam ,torzslapSzam ,oktAzon ,tajSzam ,anyjaNeve ,szulHely ,dbo.fnGetDokumentumDatumFormatum(szulIdo) szulIdo ,IIF(socAdat = '', '', LEFT(socAdat, len(socAdat)- 1)) socAdat ,kepzes ,tanuloNeve ,allampolgarsaga ,diakIgazolvanySzam ,dbo.fnGetDokumentumDatumFormatum(kilepesDatum) kilepesDatum ,beirasiNaploSorszam INTO #TanuloAlapAdatok 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 ,f.C_NYOMTATASINEV AS tanuloNeve ,d.C_NAME AS allampolgarsaga ,t.C_DIAKIGAZOLVANYSZAM AS diakIgazolvanySzam ,MAX(cs.C_KILEPESDATUM) AS kilepesDatum ,t.C_BEIRASINAPLOSORSZAM AS beirasiNaploSorszam FROM T_TANULO_OSSZES t INNER JOIN #students s ON s.ID = t.ID INNER JOIN @NaploSorszam naploSorszam on naploSorszam.TanuloId=s.ID 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.ID = cs.C_TANULOID AND cs.C_OSZTALYCSOPORTID = @osztalyId 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.ID, 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 SELECT * FROM #TanuloAlapAdatok ORDER BY sorszam /*TANULÓ elérhetőségei */ DECLARE @Gondviselok TABLE (TanuloId INT, GondviseloId INT) INSERT INTO @Gondviselok SELECT TanuloId ,gondviselo.Id FROM T_GONDVISELO_OSSZES gondviselo INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulo ON tanulo.TanuloId = gondviselo.C_TANULOID AND gondviselo.TOROLT = 'F' 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, @osztalyid, '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 UNION SELECT TanuloId ,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM ,C_CIMTIPUSA ,GondviseloId FROM @Gondviselok gonviselo INNER JOIN T_CIM_OSSZES cim ON cim.C_GONDVISELOID = GondviseloId 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, @osztalyid, '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 UNION SELECT TanuloId ,C_EMAILCIM ,GondviseloId FROM @Gondviselok INNER JOIN T_EMAIL_OSSZES email ON email.C_GONDVISELOID = GondviseloId 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, @osztalyid, '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 UNION SELECT TanuloId ,C_TELEFONSZAM ,GondviseloId FROM @Gondviselok gondviselo INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_GONDVISELOID = GondviseloId 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.GondviseloId = btemp.GondviseloId AND 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.ID tanuloid ,cim.Cimtipusa cimtipus ,cim.Cim ,email.EmailCim email ,telefon.Telefon telefonszam FROM #students s LEFT JOIN @TanuloCimTable cim ON cim.FelhasznaloId = s.ID LEFT JOIN @EmailCimTanuloTable email ON email.FelhasznaloId = s.ID LEFT JOIN @TanuloTelefonTable telefon ON telefon.FelhasznaloId = s.ID ORDER BY Cimtipusa /* TANULÓ mentesség */ SELECT s.ID tanuloId ,ROW_NUMBER() OVER(PARTITION BY s.ID ORDER BY s.ID) sorszam , mentesseg.tantargyNev , mentesseg.mentessegOka , ISNULL(IIF(mentesseg = '', '' , LEFT(mentesseg, LEN(mentesseg)- 1)),' ') mentesseg FROM #students s LEFT JOIN (SELECT DISTINCT mentesseg.C_TANULOID tanuloId , IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) tantargyNev , mentesseg.C_MENTESSEGOKA + ' ' + ISNULL('(' + dbo.fnGetDokumentumDatumFormatum(C_KEZDETE) + ' - ', '') + ISNULL(dbo.fnGetDokumentumDatumFormatum(C_VEGE) + ')', IIF(C_KEZDETE IS NULL, '', ')' )) mentessegOka , IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg FROM T_TANULOMENTESSEG_OSSZES mentesseg INNER JOIN T_TANTARGY_OSSZES t on t.ID=mentesseg.C_TANTARGYID INNER JOIN #students s ON s.ID = mentesseg.C_TANULOID WHERE mentesseg.TOROLT='F' AND mentesseg.C_TANEVID=@tanevId ) mentesseg ON s.ID=mentesseg.TANULOID /* TANULÓ határozatok */ SELECT s.ID as tanuloID , ROW_NUMBER() OVER(PARTITION BY s.ID ORDER BY s.ID) AS sorszam , dbo.fnGetDokumentumDatumFormatum(Datum) as datum , d.C_NAME as tipus , Tartalom as tartalom , FeljegyzoNeve as tanar FROM #students s LEFT JOIN fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) feljegyzes ON feljegyzes.TanuloId = s.ID AND feljegyzes.Datum BETWEEN BelepesDatum AND KilepesDatum LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND d.C_TANEVID = @tanevId WHERE Tipusa IN (1543, 1544, 1547, 1548, 1549, 1550, 1551, 1552, 1553) /* TANULÓ feljegyzései */ SELECT s.ID as tanuloID , ROW_NUMBER() OVER(PARTITION BY s.ID ORDER BY s.ID) AS sorszam , dbo.fnGetDokumentumDatumFormatum(Datum) as datum , d.C_NAME as tipus , Tartalom as tartalom , FeljegyzoNeve as tanar FROM #students s LEFT JOIN fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) feljegyzes ON feljegyzes.TanuloId = s.ID AND feljegyzes.Datum BETWEEN BelepesDatum AND KilepesDatum LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND d.C_TANEVID = @tanevId WHERE @isEllenorzo = 1 OR Tipusa IN ( 6315 ,5450 ,5421 ,6312 ,5460 ,6313 ,6314 ,6319 ,6316 ,6317 ,6318 ,5456 ,5467 ,5468 ,5469 ,5457 ,6323 ,6320 ,6321 ,6322 ,5473 ,5458 ,5470 ,5471 ,5472 ,5454 ,5461 ,5462 ,5463 ,5459 ,5455 ,5464 ,5465 ,5466 ,5453 ,1546 ,6326 ,6327 ,6328 ,5452 ,1537 ,1536 ,1538 ,1539 ,1535 ,1541 ,6491 ,1540 ,1542 ,1553 ,1545 ,5477 ,5478 ,5476 ,5474 ,5475 ,5479 ,5481 ,5480 ) ORDER BY dbo.fnGetDokumentumDatumFormatum(Datum) /* TANULO mulasztása */ DECLARE @MulasztasElmeletGyakorlat NVARCHAR(MAX) SELECT @MulasztasElmeletGyakorlat = ISNULL(@MulasztasElmeletGyakorlat + ', ', '') + '[' + ElmeletGyakorlat + ']' FROM ( SELECT CAST(Honap AS VARCHAR(3)) + Tipus ElmeletGyakorlat FROM (VALUES (9), (10), (11), (12), (1), (2), (3), (4), (5), (6), (7), (8)) HonapTmp(Honap) CROSS JOIN (VALUES ('E'), ('G')) TantargyTipus(Tipus) ) temp print @MulasztasElmeletGyakorlat SELECT 'T' IgazoltE, ID TanuloId, Tipus INTO #Mulasztasok 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.id TanuloId ,CAST('mulasztás' AS NVARCHAR(MAX)) Tipus ,ni.[9E], ni.[9G] ,ni.[10E],ni.[10G] ,ni.[11E],ni.[11G] ,ni.[12E],ni.[12G] ,ni.[1E],ni.[1G] ,ni.[2E],ni.[2G] ,ni.[3E],ni.[3G] ,ni.[4E],ni.[4G] ,ni.[5E],ni.[5G] ,ni.[6E],ni.[6G] ,FelevE ,FelevG ,[9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E] OsszesenE ,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] OsszesenG ,1 Rendez INTO #MulasztasVegleges FROM #students s LEFT JOIN (SELECT * FROM (SELECT Id, TanuloId, ElmeletGyakorlat FROM #mulasztasTmp WHERE Tipus = 1500) a PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E], [9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv )ni on ni.TanuloId=s.Id LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId) felevG on felevG.TanuloId=s.id LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId) felevE on felevE.TanuloId=s.id --igazolt INSERT INTO #MulasztasVegleges SELECT s.id ,'igazolt' ,ni.[9E], ni.[9G] ,ni.[10E],ni.[10G] ,ni.[11E],ni.[11G] ,ni.[12E],ni.[12G] ,ni.[1E],ni.[1G] ,ni.[2E],ni.[2G] ,ni.[3E],ni.[3G] ,ni.[4E],ni.[4G] ,ni.[5E],ni.[5G] ,ni.[6E],ni.[6G] ,FelevE ,FelevG ,[9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E] OsszesenE ,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] OsszesenG ,2 Rendez FROM #students s LEFT JOIN (SELECT * FROM (SELECT Id, ElmeletGyakorlat, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E], [9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv WHERE IgazoltE = 'T' AND Tipus = 1500 )ni on ni.TanuloId=s.Id LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'T' AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId) felevG on felevG.TanuloId=s.id LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'T' AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId) felevE on felevE.TanuloId=s.id --igazolatlan INSERT INTO #MulasztasVegleges SELECT s.id ,'igazolatlan' ,ni.[9E], ni.[9G] ,ni.[10E],ni.[10G] ,ni.[11E],ni.[11G] ,ni.[12E],ni.[12G] ,ni.[1E],ni.[1G] ,ni.[2E],ni.[2G] ,ni.[3E],ni.[3G] ,ni.[4E],ni.[4G] ,ni.[5E],ni.[5G] ,ni.[6E],ni.[6G] ,FelevE ,FelevG ,[9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E] OsszesenE ,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] OsszesenG ,2 Rendez FROM #students s LEFT JOIN (SELECT * FROM (SELECT Id, ElmeletGyakorlat, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E], [9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv WHERE IgazoltE = 'F' AND Tipus = 1500 )ni on ni.TanuloId=s.Id LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'F' AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId) felevG on felevG.TanuloId=s.id LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'F' AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId) felevE on felevE.TanuloId=s.id --különböző típusok IF @isReszletesMulasztasok = 1 BEGIN INSERT INTO #MulasztasVegleges SELECT m.TanuloId ,'-' + IgazolasTipus.C_NAME ,ni.[9E], ni.[9G] ,ni.[10E],ni.[10G] ,ni.[11E],ni.[11G] ,ni.[12E],ni.[12G] ,ni.[1E],ni.[1G] ,ni.[2E],ni.[2G] ,ni.[3E],ni.[3G] ,ni.[4E],ni.[4G] ,ni.[5E],ni.[5G] ,ni.[6E],ni.[6G] ,FelevE ,FelevG ,[9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E] OsszesenE ,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] OsszesenG ,IgazolasTipus.Id FROM #Mulasztasok m LEFT JOIN (SELECT * FROM (SELECT TanuloId, ElmeletGyakorlat, Id, IgazolasTipus, IgazoltE FROM #mulasztasTmp WHERE Tipus = 1500) a PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E], [9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv )ni ON ni.TanuloId = m.TanuloId AND ni.IgazolasTipus = m.Tipus INNER JOIN T_DICTIONARYITEMBASE_OSSZES IgazolasTipus ON IgazolasTipus.id = m.Tipus AND IgazolasTipus.TOROLT = 'F' AND IgazolasTipus.C_TANEVID = @tanevId LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId Tanulo, IgazolasTipus FROM #mulasztasTmp WHERE Datum <= @FelevVege AND Tipus = 1500 AND isGyakorlat = 'F' GROUP BY IgazoltE, TanuloId, IgazolasTipus )felevE ON felevE.tanulo = m.TanuloId AND felevE.IgazolasTipus = m.Tipus LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId Tanulo, IgazolasTipus FROM #mulasztasTmp WHERE Datum <= @FelevVege AND Tipus = 1500 AND isGyakorlat = 'T' GROUP BY IgazoltE, TanuloId, IgazolasTipus )felevG ON felevG.tanulo = m.TanuloId AND felevG.IgazolasTipus = m.Tipus END --KÉSÉS INSERT INTO #MulasztasVegleges SELECT s.id ,'késés (p)' ,ni.[9E], ni.[9G] ,ni.[10E],ni.[10G] ,ni.[11E],ni.[11G] ,ni.[12E],ni.[12G] ,ni.[1E],ni.[1G] ,ni.[2E],ni.[2G] ,ni.[3E],ni.[3G] ,ni.[4E],ni.[4G] ,ni.[5E],ni.[5G] ,ni.[6E],ni.[6G] ,FelevE ,FelevG ,ISNULL([9E],0)+ISNULL([10E],0)+ISNULL([11E],0)+ISNULL([12E],0)+ISNULL([1E],0)+ISNULL([2E],0)+ISNULL([3E],0)+ISNULL([4E],0)+ISNULL([5E],0)+ISNULL([6E],0) OsszesenE ,ISNULL([9G],0)+ISNULL([10G],0)+ISNULL([11G],0)+ISNULL([12G],0)+ISNULL([1G],0)+ISNULL([2G],0)+ISNULL([3G],0)+ISNULL([4G],0)+ISNULL([5G],0)+ISNULL([6G],0) OsszesenG ,50000 Rendez FROM #students s LEFT JOIN (SELECT * FROM (SELECT KesesPercben, ElmeletGyakorlat, TanuloId FROM #mulasztasTmp WHERE Tipus = 1499) a PIVOT (SUM(KesesPercben) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E], [9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv)ni on ni.TanuloId=s.Id LEFT JOIN (SELECT SUM(KesesPercben) FelevE, TanuloId FROM #mulasztasTmp WHERE Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId) felevE on felevE.TanuloId=s.id LEFT JOIN (SELECT SUM(KesesPercben) FelevG, TanuloId FROM #mulasztasTmp WHERE Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId) felevG on felevG.TanuloId=s.id --igazolt INSERT INTO #MulasztasVegleges SELECT s.id ,'* igazolt (p)' ,ni.[9E], ni.[9G] ,ni.[10E],ni.[10G] ,ni.[11E],ni.[11G] ,ni.[12E],ni.[12G] ,ni.[1E],ni.[1G] ,ni.[2E],ni.[2G] ,ni.[3E],ni.[3G] ,ni.[4E],ni.[4G] ,ni.[5E],ni.[5G] ,ni.[6E],ni.[6G] ,FelevE ,FelevG ,ISNULL([9E],0)+ISNULL([10E],0)+ISNULL([11E],0)+ISNULL([12E],0)+ISNULL([1E],0)+ISNULL([2E],0)+ISNULL([3E],0)+ISNULL([4E],0)+ISNULL([5E],0)+ISNULL([6E],0) OsszesenE ,ISNULL([9G],0)+ISNULL([10G],0)+ISNULL([11G],0)+ISNULL([12G],0)+ISNULL([1G],0)+ISNULL([2G],0)+ISNULL([3G],0)+ISNULL([4G],0)+ISNULL([5G],0)+ISNULL([6G],0) OsszesenG ,50001 Rendez FROM #students s LEFT JOIN (SELECT * FROM (SELECT KesesPercben, ElmeletGyakorlat, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (SUM(KesesPercben) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E], [9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv WHERE IgazoltE = 'T' AND Tipus = 1499)ni on ni.TanuloId=s.Id LEFT JOIN (SELECT SUM(KesesPercben) FelevE, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId) felevE ON felevE.TanuloId=s.id LEFT JOIN (SELECT SUM(KesesPercben) FelevG, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId) felevG ON felevG.TanuloId=s.id --igazolatlan INSERT INTO #MulasztasVegleges SELECT s.id ,'* igazolatlan (p)' ,ni.[9E], ni.[9G] ,ni.[10E],ni.[10G] ,ni.[11E],ni.[11G] ,ni.[12E],ni.[12G] ,ni.[1E],ni.[1G] ,ni.[2E],ni.[2G] ,ni.[3E],ni.[3G] ,ni.[4E],ni.[4G] ,ni.[5E],ni.[5G] ,ni.[6E],ni.[6G] ,FelevE ,FelevG ,ISNULL([9E],0)+ISNULL([10E],0)+ISNULL([11E],0)+ISNULL([12E],0)+ISNULL([1E],0)+ISNULL([2E],0)+ISNULL([3E],0)+ISNULL([4E],0)+ISNULL([5E],0)+ISNULL([6E],0) OsszesenE ,ISNULL([9G],0)+ISNULL([10G],0)+ISNULL([11G],0)+ISNULL([12G],0)+ISNULL([1G],0)+ISNULL([2G],0)+ISNULL([3G],0)+ISNULL([4G],0)+ISNULL([5G],0)+ISNULL([6G],0) OsszesenG ,50002 Rendez FROM #students s LEFT JOIN (SELECT * FROM (SELECT KesesPercben, ElmeletGyakorlat, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (SUM(KesesPercben) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E], [9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv WHERE IgazoltE = 'F' AND Tipus = 1499)ni on ni.TanuloId=s.Id LEFT JOIN (SELECT SUM(KesesPercben) FelevE, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId) felevE ON felevE.TanuloId=s.id LEFT JOIN (SELECT SUM(KesesPercben) FelevG, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId) felevG ON felevG.TanuloId=s.id SELECT Tanuloid ,Tipus ,ISNULL([9E], 0) [9E], ISNULL([9G], 0) [9G] ,ISNULL([10E], 0)[10E], ISNULL([10G], 0)[10G] ,ISNULL([11E], 0)[11E], ISNULL([11G], 0)[11G] ,ISNULL([12E], 0)[12E], ISNULL([12G], 0)[12G] ,ISNULL([1E], 0) [1E], ISNULL([1G], 0) [1G] ,ISNULL([2E], 0) [2E], ISNULL([2G], 0) [2G] ,ISNULL([3E], 0) [3E], ISNULL([3G], 0) [3G] ,ISNULL([4E], 0) [4E], ISNULL([4G], 0) [4G] ,ISNULL([5E], 0) [5E], ISNULL([5G], 0) [5G] ,ISNULL([6E], 0) [6E], ISNULL([6G], 0) [6G] ,ISNULL(FelevE, 0) FelevE ,ISNULL(FelevG, 0) FelevG ,ISNULL(OsszesenE, 0) OsszesenE ,ISNULL(OsszesenG, 0) OsszesenG ,ISNULL([9E], 0) + ISNULL([9G], 0) [9Ossz] ,ISNULL([10E], 0) + ISNULL([10G], 0)[10Ossz] ,ISNULL([11E], 0) + ISNULL([11G], 0)[11Ossz] ,ISNULL([12E], 0) + ISNULL([12G], 0)[12Ossz] ,ISNULL([1E], 0) + ISNULL([1G], 0) [1Ossz] ,ISNULL([2E], 0) + ISNULL([2G], 0) [2Ossz] ,ISNULL([3E], 0) + ISNULL([3G], 0) [3Ossz] ,ISNULL([4E], 0) + ISNULL([4G], 0) [4Ossz] ,ISNULL([5E], 0) + ISNULL([5G], 0) [5Ossz] ,ISNULL([6E], 0) + ISNULL([6G], 0) [6Ossz] ,ISNULL(FelevE, 0) + ISNULL(FelevG, 0) FelevOssz ,ISNULL(OsszesenE, 0) + ISNULL(OsszesenG, 0) OsszesenOssz FROM #MulasztasVegleges ORDER BY Rendez /*gondviselő elérhetőségei */ SELECT DISTINCT s.ID ,g.C_NEV + ' (' + RokonsagiFok.C_NAME + ')' 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.ID INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.ID = g.C_ROKONSAGFOKA AND RokonsagiFok.C_TANEVID = @tanevId 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*/ --Osztályhoz tartozó értékelések 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, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT) 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 #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 ,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev) Ertekeles FROM #ErtekelesekTemp WHERE (MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL) AND TipusId = 1518 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 ,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev) FROM #ErtekelesekTemp WHERE (SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL) AND TipusId = 1518 UNION ALL SELECT 'Szorgalom' ,15 Honap ,TanuloId ,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 ,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 ,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 ,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev) + Jeloles FROM #ErtekelesekTemp WHERE (MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL) AND TipusId = 1520 )magszorg SELECT DISTINCT Honap ,TanuloId ,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 FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles ,IIF(Tipus = 'Magatartás', 0, 1) 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 #magatartasSzorgalom FROM #magatartasSzorgalomTMP msz 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 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, t.c_nev TantargyNev, C_TARGYKATEGORIA FROM #jegyek j INNER JOIN T_TANTARGY_OSSZES t ON t.Id = j.TantargyId ) t ORDER BY C_TARGYKATEGORIA print @tantargyakJegyek DECLARE @sqlJegyek NVARCHAR(MAX) SET @sqlJegyek = ' SELECT TanuloId tanuloID ,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 = 7 THEN ''07.'' WHEN Honap = 8 THEN ''08.'' 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 TantargyId , Honap , TanuloId , Ertekeles , NaploSorszam , RendezHonap FROM #jegyek j INNER JOIN #students s on j.Tanuloid=s.ID UNION ALL SELECT IIF(Tipus = ''Magatartás'', 0, 1) , Honap , TanuloId , Ertekeles , NaploSorszam , RendezHonap FROM #magatartasSzorgalom m INNER JOIN #students s on m.Tanuloid=s.ID )a PIVOT (MAX(Ertekeles) FOR TantargyId in (' + @tantargyakJegyek + ')) piv ORDER BY NaploSorszam, RendezHonap ' IF (@tantargyakJegyek IS NULL) BEGIN SELECT 0 AS tanuloId END ELSE BEGIN EXEC sp_executesql @sqlJegyek END END ELSE BEGIN SELECT * FROM( SELECT TanuloId , Tipus , Rendez ,[9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16] FROM (SELECT TanuloId, Ertekeles, Honap, Tipus, IIF(Tipus = 'Magatartás', 0, 1) TantargyId, Rendez FROM #magatartasSzorgalom)a PIVOT (MAX(Ertekeles) FOR Honap IN ([9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16])) piv UNION ALL SELECT TanuloId TanuloId ,C_NEV TantargyNev ,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 )vegleges ORDER BY TanuloId, Rendez, Tipus END /* TANULÓ záradékai */ SELECT students.ID tanuloId ,tanuloCsoport.C_ZARADEK zaradek FROM #students students INNER JOIN T_TANULOCSOPORT_OSSZES tanuloCsoport on students.ID = tanuloCsoport.C_TANULOID WHERE tanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId AND TOROLT = 'F' AND C_ZARADEK IS NOT NULL AND LEN(C_ZARADEK) > 0 UNION SELECT students.ID tanuloId ,tanuloCsoport.C_VEGZARADEK zaradek FROM #students students INNER JOIN T_TANULOCSOPORT_OSSZES tanuloCsoport on students.ID = tanuloCsoport.C_TANULOID WHERE tanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId AND TOROLT = 'F' AND C_VEGZARADEK IS NOT NULL AND LEN(C_VEGZARADEK) > 0 /*Szöveges minősítések*/ SELECT a.tanuloId ,a.Honap ,a.Tantargy ,a.Ertekeles ,a.Tipus FROM ( SELECT s.id tanuloId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #students s INNER 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.Id UNION SELECT s.id tanuloId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #students s INNER JOIN (SELECT ErtekelesTemp.TanuloId tanuloId ,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, Datum))+'. hónap]' Honap ,'Magatartás' Tantargy ,ErtekelesTemp.MagatartasSzoveg + 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 ErtekelesTemp.MagatartasSzoveg IS NOT NULL ) szoveges on szoveges.TANULOID=s.Id UNION SELECT s.id tanuloId ,szoveges.Honap ,szoveges.Tantargy ,szoveges.Ertekeles ,szoveges.Tipus ,szoveges.RendezHonap FROM #students s INNER JOIN (SELECT ErtekelesTemp.TanuloId tanuloId ,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, Datum))+'. hónap]' Honap ,'Szorgalom' Tantargy ,ErtekelesTemp.SzorgalomSzoveg + 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 ErtekelesTemp.SzorgalomSzoveg IS NOT NULL ) szoveges on szoveges.TANULOID=s.Id )a ORDER BY RendezHonap, Tantargy --Közösségi szolgálat SELECT TanuloId ,dbo.fnGetDokumentumDatumFormatum(Datum) Datum ,ISNULL(' - ' + Megjegyzes, '') Megjegyzes ,Oraszam ,TeljesitesHelye ,FeljegyzoNeve ,Tipus FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId) ORDER BY Datum --Félévi, év végi mulasztások DECLARE @FeleviMulasztasok TABLE ( TanuloId INT ,Igazolt INT ,Igazolatlan INT ,ElmeletIgazolt INT ,ElmeletIgazolatlan INT ,GyakorlatIgazolt INT ,GyakorlatIgazolatlan INT ,ElmeletOsszes INT ,GyakorlatOsszes INT ,Osszes INT ) INSERT INTO @FeleviMulasztasok EXEC sp_GetDokumentumMulasztasok @osztalyId = @osztalyId, @tanevId = @tanevId, @elmeletGyakorlat = 1, @kesesTipus = 1499, @elmeletiOraPercben = 45, @gyakorlatiOraPercben = 60, @ertekelesTipus = 1519, @iskolaErdekuSzamit = @iskolaErdekuSzamit DECLARE @EvVegiMulasztasok TABLE ( TanuloId INT ,Igazolt INT ,Igazolatlan INT ,ElmeletIgazolt INT ,ElmeletIgazolatlan INT ,GyakorlatIgazolt INT ,GyakorlatIgazolatlan INT ,ElmeletOsszes INT ,GyakorlatOsszes INT ,Osszes INT ) INSERT INTO @EvVegiMulasztasok EXEC sp_GetDokumentumMulasztasok @osztalyId = @osztalyId, @tanevId = @tanevId, @elmeletGyakorlat = 1, @kesesTipus = 1499, @elmeletiOraPercben = 45, @gyakorlatiOraPercben = 60, @ertekelesTipus = 1520, @iskolaErdekuSzamit = @iskolaErdekuSzamit SELECT TanuloAlapAdatok.tanuloId TanuloId ,ISNULL(FeleviMulasztasok.ElmeletIgazolt, 0) FeleviElmeletIgazolt ,ISNULL(FeleviMulasztasok.ElmeletIgazolatlan, 0) FeleviElmeletIgazolatlan ,ISNULL(FeleviMulasztasok.GyakorlatIgazolT, 0) FeleviGyakorlatIgazolt ,ISNULL(FeleviMulasztasok.GyakorlatIgazolatlan, 0) FeleviGyakorlatIgazolatlan ,ISNULL(FeleviMulasztasok.ElmeletIgazolt + FeleviMulasztasok.ElmeletIgazolatlan, 0) FeleviElmelet ,ISNULL(FeleviMulasztasok.GyakorlatIgazolt + FeleviMulasztasok.GyakorlatIgazolatlan, 0) FeleviGyakorlat ,ISNULL(EvVegiMulasztasok.ElmeletIgazolt, 0) EvVegiElmeletIgazolt ,ISNULL(EvVegiMulasztasok.ElmeletIgazolatlan, 0) EvVegiElmeletIgazolatlan ,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt, 0) EvVegiGyakorlatIgazolt ,ISNULL(EvVegiMulasztasok.GyakorlatIgazolatlan, 0) EvVegiGyakorlatIgazolatlan ,ISNULL(EvVegiMulasztasok.ElmeletIgazolt + EvVegiMulasztasok.ElmeletIgazolatlan, 0) EvVegiElmelet ,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt + EvVegiMulasztasok.GyakorlatIgazolatlan, 0) EvVegiGyakorlat ,ISNULL(FeleviMulasztasok.Osszes, 0) FeleviOsszes ,ISNULL(FeleviMulasztasok.Igazolt, 0) FeleviIgazolt ,ISNULL(FeleviMulasztasok.Igazolatlan, 0) FeleviIgazolatlan ,ISNULL(EvVegiMulasztasok.Osszes, 0) EvVegiOsszes ,ISNULL(EvVegiMulasztasok.Igazolt, 0) EvVegiIgazolt ,ISNULL(EvVegiMulasztasok.Igazolatlan, 0) EvVegiIgazolatlan ,oktAzon oktAzon ,tanuloNeve tanuloNeve FROM #TanuloAlapAdatok TanuloAlapAdatok LEFT JOIN @EvVegiMulasztasok EvVegiMulasztasok ON EvVegiMulasztasok.TanuloId = TanuloAlapAdatok.TanuloId LEFT JOIN @FeleviMulasztasok FeleviMulasztasok ON FeleviMulasztasok.TanuloId = TanuloAlapAdatok.TanuloId ORDER BY tanuloNeve --értékelésekhez tartozó feljegyzések 1. félév SELECT DISTINCT TanuloId ,STUFF((SELECT DISTINCT ', ' + JelolesAndErtekelesTema FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE LEN(JelolesAndErtekelesTema) > 0 AND Datum <= @FelevVege 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 Datum <= @FelevVege AND (ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL) --értékelésekhez tartozó feljegyzések 2. félév SELECT DISTINCT TanuloId ,STUFF((SELECT DISTINCT ', ' + JelolesAndErtekelesTema FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz WHERE LEN(JelolesAndErtekelesTema) > 0 AND Datum >= @FelevVege 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 Datum >= @FelevVege AND (ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL) --é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 #Oralatogatas DROP TABLE #NaploEllenorzes DROP TABLE #students DROP TABLE #osztalycsoportok DROP TABLE #OsztalyVagyTanoraiCsoport DROP TABLE #megtartottOrak DROP TABLE #OraSorszam DROP TABLE #OraSorszamTemp DROP TABLE #mulasztasTmp DROP TABLE #MulasztasVegleges DROP TABLE #jegyekTMP DROP TABLE #jegyek DROP TABLE #magatartasSzorgalomTMP DROP TABLE #magatartasSzorgalom DROP TABLE #TanuloAlapAdatok END GO