40 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
IF OBJECT_ID('fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet') IS NOT NULL BEGIN
 | 
						|
  DROP FUNCTION fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
CREATE FUNCTION fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet (@tanevId int, @osztalyId int)
 | 
						|
  RETURNS TABLE
 | 
						|
RETURN (
 | 
						|
	SELECT 
 | 
						|
		C_TANULOID						TanuloId
 | 
						|
		, ISNULL(t.C_FOTARGYID, t.ID)	TantargyId
 | 
						|
		, SUM(fog.C_ORASZAM) * IIF((SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T', 32, 36) Oraszam
 | 
						|
	FROM 
 | 
						|
		T_TANULOCSOPORT_OSSZES tcs
 | 
						|
	INNER JOIN T_FOGLALKOZAS_OSSZES fog ON fog.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID
 | 
						|
	INNER JOIN T_TANTARGY_OSSZES t on t.ID = fog.C_TANTARGYID AND (t.C_FOTARGYE = 'T' OR t.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
 | 
						|
	WHERE 
 | 
						|
		tcs.C_TANULOID IN (	SELECT TanuloId FROM fnGetDokumentumOsztalyokTanuloi(@tanevId, @osztalyId, 'T') )
 | 
						|
		AND ((tcs.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES)) OR (tcs.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA=1034)))
 | 
						|
		AND tcs.TOROLT = 'F'
 | 
						|
		AND tcs.C_TANEVID = @tanevId
 | 
						|
		AND ISNULL(tcs.C_KILEPESDATUM, IIF(
 | 
						|
									(SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T', 
 | 
						|
						(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402), --végzős
 | 
						|
						(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1395)  --nem végzős
 | 
						|
										)
 | 
						|
					)		
 | 
						|
			>= IIF(
 | 
						|
									(SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T', 
 | 
						|
						(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402), --végzős
 | 
						|
						(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1395)  --nem végzős
 | 
						|
									)
 | 
						|
	GROUP BY C_TANULOID, t.C_FOTARGYID, t.ID
 | 
						|
)
 |