DROP PROCEDURE IF EXISTS sp_GetDokumentumMulasztasokIdoszakonkent GO CREATE PROCEDURE sp_GetDokumentumMulasztasokIdoszakonkent @tanevId int ,@osztalyCsoportId int ,@iskolaErdekuSzamit int ,@isReszletesMulasztasok int ,@elmeletiOraPercben int = 45 ,@gyakorlatiOraPercben int = 45 ,@igazolasTipusTypeId int = 47 AS BEGIN SET NOCOUNT ON; 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 SELECT 'T' IgazoltE, ID TanuloId, TanuloCsoportId, Tipus INTO #Mulasztasok FROM #studentsWithTanuloCsoport CROSS JOIN (SELECT DISTINCT Id FROM T_DICTIONARYITEMBASE_OSSZES WHERE C_TANEVID = @tanevId AND C_DICTIONARYTYPEID = @IgazolasTipusTypeId AND (@iskolaErdekuSzamit = 1 OR Id <> 1533) ) Tipus (Tipus) --hiányzás DECLARE @FelevVege date = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID = @tanevId AND TOROLT = 'F') CREATE TABLE #MulasztasokTemp ( TanuloId int,TanuloCsoportId int,Tipus nvarchar(max),[9E] int,[9G] int,[10E] int,[10G] int,[11E] int,[11G] int,[12E] int,[12G] int, [1E] int,[1G] int,[2E] int,[2G] int,[3E] int,[3G] int,[4E] int,[4G] int,[5E] int,[5G] int,[6E] int,[6G] int,FelevE int,FelevG int ,OsszesenE int,OsszesenG int,Rendez int) CREATE TABLE #MulasztasVegleges ( TanuloId int,TanuloCsoportId int,Tipus nvarchar(max),[9E] int,[9G] int,[10E] int,[10G] int,[11E] int,[11G] int,[12E] int,[12G] int, [1E] int,[1G] int,[2E] int,[2G] int,[3E] int,[3G] int,[4E] int,[4G] int,[5E] int,[5G] int,[6E] int,[6G] int,FelevE int,FelevG int ,OsszesenE int,OsszesenG int,Rendez int) --igazolt mulasztás (start) tempbe mert beleszámoljuk az összegezettbe INSERT INTO #MulasztasokTemp (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT s.id ,s.TanuloCsoportId ,'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] ,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] ,2 Rendez FROM #studentsWithTanuloCsoport s LEFT JOIN (SELECT * FROM (SELECT Id, ElmeletGyakorlat, TanuloId, TanuloCsoportId, 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 AND ni.TanuloCsoportId = s.TanuloCsoportId LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'T' AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId, TanuloCsoportId) felevG ON felevG.TanuloId=s.id AND felevG.TanuloCsoportId = s.TanuloCsoportId LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'T' AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId, TanuloCsoportId) felevE ON felevE.TanuloId=s.id AND felevE.TanuloCsoportId = s.TanuloCsoportId --Igazolt mulasztás (end) --Igazolatlan mulasztás (start) tempbe mert beleszámoljuk az összegezettbe INSERT INTO #MulasztasokTemp (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT s.id ,s.TanuloCsoportId ,'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 #studentsWithTanuloCsoport s LEFT JOIN (SELECT * FROM (SELECT Id, ElmeletGyakorlat, TanuloId, TanuloCsoportId, 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 AND ni.TanuloCsoportId = s.TanuloCsoportId LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'F' AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId, TanuloCsoportId) felevG ON felevG.TanuloId=s.id AND felevG.TanuloCsoportId = s.TanuloCsoportId LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'F' AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId, TanuloCsoportId) felevE ON felevE.TanuloId=s.id AND felevE.TanuloCsoportId = s.TanuloCsoportId --Igazolatlan mulasztás (end) --Különbözo igazolás típusok (start) IF @isReszletesMulasztasok = 1 BEGIN INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT m.TanuloId ,m.TanuloCsoportId ,'-' + 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, TanuloCsoportId, 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 AND m.TanuloCsoportId = ni.TanuloCsoportId 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, TanuloCsoportId, IgazolasTipus FROM #mulasztasTmp WHERE Datum <= @FelevVege AND Tipus = 1500 AND isGyakorlat = 'F' GROUP BY IgazoltE, TanuloId, TanuloCsoportId, IgazolasTipus )felevE ON felevE.tanulo = m.TanuloId AND felevE.IgazolasTipus = m.Tipus AND felevE.TanuloCsoportId = m.TanuloCsoportId LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId Tanulo, TanuloCsoportId, IgazolasTipus FROM #mulasztasTmp WHERE Datum <= @FelevVege AND Tipus = 1500 AND isGyakorlat = 'T' GROUP BY IgazoltE, TanuloId, TanuloCsoportId, IgazolasTipus )felevG ON felevG.tanulo = m.TanuloId AND felevG.IgazolasTipus = m.Tipus AND felevG.TanuloCsoportId = m.TanuloCsoportId END --Különbözo igazolás típusok (end) --Összesített késés (p) (start) INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT s.id ,s.TanuloCsoportId ,'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 #studentsWithTanuloCsoport s LEFT JOIN (SELECT * FROM (SELECT KesesPercben, ElmeletGyakorlat, TanuloId, TanuloCsoportId 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 AND ni.TanuloCsoportId = s.TanuloCsoportId LEFT JOIN (SELECT SUM(KesesPercben) FelevE, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId, TanuloCsoportId) felevE on felevE.TanuloId=s.id AND felevE.TanuloCsoportId = s.TanuloCsoportId LEFT JOIN (SELECT SUM(KesesPercben) FelevG, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId, TanuloCsoportId) felevG on felevG.TanuloId=s.id AND felevG.TanuloCsoportId = s.TanuloCsoportId --Összesített késés (p) (end) --Igazolt késés (p) (start) INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT s.id ,s.TanuloCsoportId ,'* 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) AS 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) AS OsszesenG ,50001 AS Rendez FROM #studentsWithTanuloCsoport s LEFT JOIN (SELECT * FROM (SELECT KesesPercben, ElmeletGyakorlat, TanuloId, TanuloCsoportId, 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 AND ni.TanuloCsoportId = s.TanuloCsoportId LEFT JOIN (SELECT SUM(KesesPercben) FelevE, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId, TanuloCsoportId) felevE ON felevE.TanuloId=s.id AND felevE.TanuloCsoportId = s.TanuloCsoportId LEFT JOIN (SELECT SUM(KesesPercben) FelevG, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId, TanuloCsoportId ) felevG ON felevG.TanuloId=s.id AND felevG.TanuloCsoportId = s.TanuloCsoportId --Igazolt késés (p) (end) --Igazolatlan késés (p) (start) INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT s.id ,s.TanuloCsoportId ,'* 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) AS 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) AS OsszesenG ,50002 Rendez FROM #studentsWithTanuloCsoport s LEFT JOIN (SELECT * FROM (SELECT KesesPercben, ElmeletGyakorlat, TanuloId, TanuloCsoportId, 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 AND ni.TanuloCsoportId = s.TanuloCsoportId LEFT JOIN (SELECT SUM(KesesPercben) FelevE, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId, TanuloCsoportId) felevE ON felevE.TanuloId=s.id AND felevE.TanuloCsoportId = s.TanuloCsoportId LEFT JOIN (SELECT SUM(KesesPercben) FelevG, TanuloId, TanuloCsoportId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1499 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId, TanuloCsoportId) felevG ON felevG.TanuloId=s.id AND felevG.TanuloCsoportId = s.TanuloCsoportId --Igazolatlan késés (p) (end) --Mindkét fajta késés (ó) (start) tempbe mert beleszámoljuk az összegezettbe INSERT INTO #MulasztasokTemp (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT TanuloId ,TanuloCsoportId ,REPLACE(Tipus,'(p)','(ó)') ,CAST(ISNULL([9E], 0) / @elmeletiOraPercben AS int) ,CAST(ISNULL([9G], 0) / @gyakorlatiOraPercben AS int) ,CAST((ISNULL([10E], 0) + (ISNULL([9E], 0) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int) ,CAST((ISNULL([10G], 0) + (ISNULL([9G], 0) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int) ,CAST((ISNULL([11E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int) ,CAST((ISNULL([11G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int) ,CAST((ISNULL([12E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int) ,CAST((ISNULL([12G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int) ,CAST((ISNULL([1E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int) ,CAST((ISNULL([1G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int) ,CAST((ISNULL([2E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0) + ISNULL([1E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int) ,CAST((ISNULL([2G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0) + ISNULL([1G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int) ,CAST((ISNULL([3E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0) + ISNULL([1E], 0) + ISNULL([2E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int) ,CAST((ISNULL([3G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0) + ISNULL([1G], 0) + ISNULL([2G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int) ,CAST((ISNULL([4E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0) + ISNULL([1E], 0) + ISNULL([2E], 0) + ISNULL([3E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int) ,CAST((ISNULL([4G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0) + ISNULL([1G], 0) + ISNULL([2G], 0) + ISNULL([3G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int) ,CAST((ISNULL([5E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0) + ISNULL([1E], 0) + ISNULL([2E], 0) + ISNULL([3E], 0) + ISNULL([4E], 0)) % @elmeletiOraPercben)) / @elmeletiOraPercben AS int) ,CAST((ISNULL([5G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0) + ISNULL([1G], 0) + ISNULL([2G], 0) + ISNULL([3G], 0) + ISNULL([4G], 0)) % @gyakorlatiOraPercben)) / @gyakorlatiOraPercben AS int) ,CAST((ISNULL([6E], 0) + ((ISNULL([9E], 0) + ISNULL([10E], 0) + ISNULL([11E], 0) + ISNULL([12E], 0) + ISNULL([1E], 0) + ISNULL([2E], 0) + ISNULL([3E], 0) + ISNULL([4E], 0)) % @elmeletiOraPercben) + ISNULL([5E], 0)) / @elmeletiOraPercben AS int) ,CAST((ISNULL([6G], 0) + ((ISNULL([9G], 0) + ISNULL([10G], 0) + ISNULL([11G], 0) + ISNULL([12G], 0) + ISNULL([1G], 0) + ISNULL([2G], 0) + ISNULL([3G], 0) + ISNULL([4G], 0)) % @gyakorlatiOraPercben) + ISNULL([5G], 0)) / @gyakorlatiOraPercben AS int) ,CAST(ISNULL(FelevE,0)/@elmeletiOraPercben AS int) ,CAST(ISNULL(FelevG,0)/@gyakorlatiOraPercben AS int) ,CAST(ISNULL(OsszesenE,0)/@elmeletiOraPercben AS int) ,CAST(ISNULL(OsszesenG,0)/@gyakorlatiOraPercben AS int) ,Rendez+3 FROM #MulasztasVegleges WHERE Tipus LIKE '%*%(p)%' --Mindkét fajta késés (ó) (end) --Igazolt hozott (start) tempbe mert beleszámoljuk az összegezettbe INSERT INTO #MulasztasokTemp (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT s.id ,s.TanuloCsoportId ,'hozott igazolt mulasztás' ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,IIF(@FelevVege > CAST(replace(s.BelepesDatum,'.','') AS DATE), ISNULL(tta.C_HOZOTTIGAZOLTHIANYZAS,0),0) ,0 ,ISNULL(tta.C_HOZOTTIGAZOLTHIANYZAS,0) ,0 ,50005 Rendez FROM #studentsWithTanuloCsoport s LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = s.TanuloCsoportId --Igazolt hozott (end) --Igazolatlan hozott (start) tempbe mert beleszámoljuk az összegezettbe INSERT INTO #MulasztasokTemp (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT s.id ,s.TanuloCsoportId ,'hozott igazolatlan mulasztás' ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,0,0 ,IIF(@FelevVege > CAST(replace(s.BelepesDatum,'.','') AS DATE), ISNULL(tta.C_HOZOTTIGAZOLATLANHIANYZAS,0),0) ,0 ,ISNULL(tta.C_HOZOTTIGAZOLATLANHIANYZAS,0) ,0 ,50006 Rendez FROM #studentsWithTanuloCsoport s LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = s.TanuloCsoportId --Igazolatlan hozott (end) -- beszurni a veglegestablaba a temp osszegezve --Összesített mulasztás (start) INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT mb.TanuloId ,mb.TanuloCsoportId ,CAST('mulasztás' AS NVARCHAR(MAX)) AS Tipus ,SUM(ISNULL(mb.[9E],0)) ,SUM(ISNULL(mb.[9G],0)) ,SUM(ISNULL(mb.[10E],0)) ,SUM(ISNULL(mb.[10G],0)) ,SUM(ISNULL(mb.[11E],0)) ,SUM(ISNULL(mb.[11G],0)) ,SUM(ISNULL(mb.[12E],0)) ,SUM(ISNULL(mb.[12G],0)) ,SUM(ISNULL(mb.[1E],0)) ,SUM(ISNULL(mb.[1G],0)) ,SUM(ISNULL(mb.[2E],0)) ,SUM(ISNULL(mb.[2G],0)) ,SUM(ISNULL(mb.[3E],0)) ,SUM(ISNULL(mb.[3G],0)) ,SUM(ISNULL(mb.[4E],0)) ,SUM(ISNULL(mb.[4G],0)) ,SUM(ISNULL(mb.[5E],0)) ,SUM(ISNULL(mb.[5G],0)) ,SUM(ISNULL(mb.[6E],0)) ,SUM(ISNULL(mb.[6G],0)) ,SUM(ISNULL(mb.FelevE,0)) ,SUM(ISNULL(mb.FelevG,0)) ,SUM(ISNULL(mb.OsszesenE,0)) ,SUM(ISNULL(mb.OsszesenG,0)) ,1 AS Rendez FROM #MulasztasokTemp mb GROUP BY mb.TanuloId,mb.TanuloCsoportId --Összesített mulasztás (end) -- beszurni a veglegestablaba a temp-bol INSERT INTO #MulasztasVegleges (TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez) SELECT TanuloId, TanuloCsoportId, Tipus, [9E],[9G],[10E],[10G],[11E],[11G],[12E],[12G],[1E],[1G], [2E],[2G],[3E],[3G],[4E],[4G],[5E],[5G],[6E],[6G], FelevE, FelevG, OsszesenE, OsszesenG, Rendez FROM #MulasztasokTemp SELECT Tanuloid ,TanuloCsoportId ,Tipus ,ISNULL([9E], 0) AS [9E], ISNULL([9G], 0) AS [9G] ,ISNULL([10E], 0) AS [10E], ISNULL([10G], 0) AS [10G] ,ISNULL([11E], 0) AS [11E], ISNULL([11G], 0) AS [11G] ,ISNULL([12E], 0) AS [12E], ISNULL([12G], 0) AS [12G] ,ISNULL([1E], 0) AS [1E], ISNULL([1G], 0) AS [1G] ,ISNULL([2E], 0) AS [2E], ISNULL([2G], 0) AS [2G] ,ISNULL([3E], 0) AS [3E], ISNULL([3G], 0) AS [3G] ,ISNULL([4E], 0) AS [4E], ISNULL([4G], 0) AS [4G] ,ISNULL([5E], 0) AS [5E], ISNULL([5G], 0) AS [5G] ,ISNULL([6E], 0) AS [6E], ISNULL([6G], 0) AS [6G] ,ISNULL(FelevE, 0) AS FelevE ,ISNULL(FelevG, 0) AS FelevG ,ISNULL(OsszesenE, 0) AS OsszesenE ,ISNULL(OsszesenG, 0) AS OsszesenG ,ISNULL([9E], 0) + ISNULL([9G], 0) [9Ossz] ,ISNULL([10E], 0) + ISNULL([10G], 0) AS [10Ossz] ,ISNULL([11E], 0) + ISNULL([11G], 0) AS [11Ossz] ,ISNULL([12E], 0) + ISNULL([12G], 0) AS [12Ossz] ,ISNULL([1E], 0) + ISNULL([1G], 0) AS [1Ossz] ,ISNULL([2E], 0) + ISNULL([2G], 0) AS [2Ossz] ,ISNULL([3E], 0) + ISNULL([3G], 0) AS [3Ossz] ,ISNULL([4E], 0) + ISNULL([4G], 0) AS [4Ossz] ,ISNULL([5E], 0) + ISNULL([5G], 0) AS [5Ossz] ,ISNULL([6E], 0) + ISNULL([6G], 0) AS [6Ossz] ,ISNULL(FelevE, 0) + ISNULL(FelevG, 0) AS FelevOssz ,ISNULL(OsszesenE, 0) + ISNULL(OsszesenG, 0) AS OsszesenOssz FROM #MulasztasVegleges ORDER BY Rendez END GO