147 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
IF OBJECT_ID('[dbo].[sp_GetTanulokMulasztasokReszletezese]') IS NOT NULL 
 | 
						|
BEGIN
 | 
						|
  DROP PROCEDURE [dbo].[sp_GetTanulokMulasztasokReszletezese]
 | 
						|
END  
 | 
						|
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 
 | 
						|
			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 oo.ID = tno.C_ORARENDIORAID 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 |