379 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			379 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
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
 | 
						|
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_TYPE LIKE 'igazolastipus' 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
 |