kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/sp_GetDokumentumMulasztasokIdoszakonkent.sql
2024-03-13 00:33:46 +01:00

380 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
,@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