DROP PROCEDURE IF EXISTS [dbo].[sp_GetTanulokMulasztasokReszletezese] GO CREATE PROCEDURE [dbo].[sp_GetTanulokMulasztasokReszletezese] @OsztalyId INT, @TanevId INT AS BEGIN SET NOCOUNT ON; DECLARE @Diakok TABLE (DiakId INT) INSERT INTO @Diakok SELECT T_FELHASZNALO_OSSZES.ID FROM T_FELHASZNALO_OSSZES JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F') TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID WHERE T_FELHASZNALO_OSSZES.TOROLT='F' AND T_FELHASZNALO_OSSZES.C_TANEVID = @TanevId AND TANCSOPORT.C_OSZTALYCSOPORTID = @OsztalyId order by T_FELHASZNALO_OSSZES.C_NYOMTATASINEV DECLARE @Mulasztasok TABLE (MulasztasId INT) INSERT INTO @Mulasztasok SELECT ID FROM T_MULASZTASTIPUS_OSSZES WHERE ID != 1497 AND ID != 1498 AND ID != 1817 AND C_ALTANEVID = @TanevId DECLARE @tmp TABLE (OSZTALY NVARCHAR(255), INT_NEV NVARCHAR(255), INT_OMKOD int, INT_VAROS NVARCHAR(255) , INT_CIM NVARCHAR(255), INT_IGAZGATO_NEV NVARCHAR(255), OSZTFO_NEV NVARCHAR(255)) INSERT INTO @tmp SELECT TOP 1 /*TODO:Tobb Osztaly*//*OM-1607*/ ocs.C_NEV , i.C_NEV AS INT_NEV ,i.C_OMKOD AS INT_OMKOD ,i.C_VAROS AS INT_VAROS ,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS INT_CIM ,i.C_IGAZGATONEVE AS INT_IGAZGATO_NEV ,osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV AS OSZTFO_NEV FROM T_OSZTALYCSOPORT_OSSZES ocs JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.TOROLT = 'F' JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F' LEFT OUTER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.TOROLT = 'F' LEFT OUTER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F' LEFT OUTER JOIN T_FELHASZNALO_OSSZES osztf ON osztf.ID = o.C_OSZTALYFONOKID AND osztf.TOROLT = 'F' where tcs.C_OSZTALYCSOPORTID = @OsztalyId AND ocs.C_TANEVID = @TanevId AND tcs.TOROLT = 'F' AND ocs.TOROLT = 'F' declare @TenylegesMulasztasok table (DiakId INT, MulasztasId int, NEV NVARCHAR(255), OSZTALY NVARCHAR(255), DATUM DATETIME , ORA INT, MULASZTASJELLEG NVARCHAR(255), KESESPERC int, OSZTALYCSOPORT NVARCHAR(255) , TANTARGY NVARCHAR(255), INT_NEV NVARCHAR(255), INT_OMKOD NVARCHAR(255), INT_VAROS NVARCHAR(255) , INT_CIM NVARCHAR(255), INT_IGAZGATO_NEV NVARCHAR(255), OSZTFO_NEV NVARCHAR(255)) INSERT INTO @TenylegesMulasztasok SELECT f.Id ,tm.C_TIPUS ,f.C_VEZETEKNEV + ' ' + f.C_UTONEV AS NEV ,ocs.C_NEV AS OSZTALY ,tno.C_DATUM AS DATUM ,oo.C_ORASZAM AS ORA ,tm.C_TIPUS as MULASZTASJELLEG ,tm.C_KESESPERCBEN AS KESESPERC ,ocs.C_NEV AS OSZTALYCSOPORT ,tt.C_NEV AS TANTARGY ,i.C_NEV AS INT_NEV ,i.C_OMKOD AS INT_OMKOD ,i.C_VAROS AS INT_VAROS ,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS INT_CIM ,i.C_IGAZGATONEVE AS INT_IGAZGATO_NEV ,osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV AS OSZTFO_NEV FROM T_OSZTALYCSOPORT_OSSZES ocs JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.TOROLT = 'F' JOIN T_FELHASZNALO_OSSZES f on f.ID = tcs.C_TANULOID AND f.TOROLT = 'F' LEFT JOIN T_TANULOMULASZTAS_OSSZES tm ON tm.C_ORATANULOIID = tcs.C_TANULOID and tm.TOROLT = 'F' LEFT JOIN T_TANITASIORA_OSSZES tno ON tno.ID = tm.C_TANITASIORAKID AND tno.TOROLT = 'F' LEFT JOIN T_TANTARGY_OSSZES tt ON tt.ID = tno.C_TANTARGYID AND tt.TOROLT = 'F' LEFT JOIN T_ORARENDIORA_OSSZES oo ON tno.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND tno.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE AND oo.TOROLT = 'F' LEFT OUTER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.TOROLT = 'F' LEFT OUTER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F' LEFT OUTER JOIN T_FELHASZNALO_OSSZES osztf ON osztf.ID = o.C_OSZTALYFONOKID AND osztf.TOROLT = 'F' WHERE tcs.C_OSZTALYCSOPORTID = @OsztalyId AND ocs.C_TANEVID = @TanevId AND tcs.TOROLT = 'F' AND ocs.TOROLT = 'F' DECLARE @tmp2 TABLE (DiakId INT, MulasztasId INT, Cnt INT) INSERT INTO @tmp2 SELECT N.DiakId ,O.MulasztasId ,count(*) AS Cnt FROM @Diakok N CROSS JOIN @Mulasztasok O JOIN @TenylegesMulasztasok T ON T.DiakId = N.DiakId AND T.MulasztasId = O.MulasztasId GROUP BY N.DiakId,O.MulasztasId SELECT N.DiakId ,O.MulasztasId ,O.MulasztasId AS Mulasztas ,f.C_VEZETEKNEV + ' ' + f.C_UTONEV AS NEV ,(select OSZTALY FROM @tmp) AS OSZTALY ,DATUM ,ORA ,T.MulasztasId AS MULASZTASJELLEG ,KESESPERC ,OSZTALYCSOPORT ,TANTARGY ,(SELECT INT_NEV FROM @tmp) AS INT_NEV ,(SELECT INT_OMKOD FROM @tmp) AS INT_OMKOD ,(SELECT INT_VAROS FROM @tmp) AS INT_VAROS ,(SELECT INT_CIM FROM @tmp) AS INT_CIM ,(SELECT INT_IGAZGATO_NEV FROM @tmp) AS INT_IGAZGATO_NEV ,(SELECT OSZTFO_NEV FROM @tmp) as OSZTFO_NEV ,isnull(Cntr.Cnt, 0) AS Cntr ,f.C_NYOMTATASINEV + ' ' + cast(N.DiakId as nvarchar) AS GROUPPARAMETER FROM @Diakok N CROSS JOIN @Mulasztasok O LEFT JOIN @TenylegesMulasztasok T ON T.DiakId = N.DiakId AND T.MulasztasId = O.MulasztasId JOIN T_FELHASZNALO_OSSZES f ON f.ID = N.DiakId AND f.TOROLT = 'F' LEFT JOIN @tmp2 Cntr ON Cntr.DiakId = N.DiakId AND Cntr.MulasztasId = O.MulasztasId ORDER BY f.C_NYOMTATASINEV SELECT C_OSZTALYFONOKID PartnerID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = @OsztalyId AND T_OSZTALY_OSSZES.TOROLT='F' AND T_OSZTALY_OSSZES.C_ALTANEVID = @TanevId END GO