50 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
IF OBJECT_ID('fnGetDokumentumErtekelesekOsztalyonkent') IS NOT NULL BEGIN
 | 
						|
  DROP FUNCTION fnGetDokumentumErtekelesekOsztalyonkent
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
CREATE FUNCTION fnGetDokumentumErtekelesekOsztalyonkent (@tanevId INT, @osztalyId INT)
 | 
						|
  RETURNS TABLE
 | 
						|
RETURN (
 | 
						|
	SELECT 
 | 
						|
		C_ERTEKELESDATUM							Datum
 | 
						|
		,C_ERTEKELESTIPUSA							Tipusa
 | 
						|
		,C_ERTEKELESSZOVEG							SzovegesErtekeles
 | 
						|
		,C_OSZTALYZAT								OsztalyzatId
 | 
						|
		,jegy.C_VALUE								Osztalyzat
 | 
						|
		,CONVERT(NVARCHAR(MAX),C_SZAZALEK)+'%'		Szazalek
 | 
						|
		,C_TANTARGYID								TantargyId
 | 
						|
		,C_TARGYKATEGORIA							TargyKategoriaId
 | 
						|
		,IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) TantargyNev
 | 
						|
		,C_FOTARGYE									FotargyE
 | 
						|
		,C_ALTANTARGYKENTNYOMTATVANYBAN				Altantargy
 | 
						|
		,te.C_TANULOID								TanuloId
 | 
						|
		,te.C_OSZTALYCSOPORTID						OsztalyCsoportId
 | 
						|
		,C_SZORGALOM								SzorgalomId
 | 
						|
		,C_MAGATARTAS								MagatartasId
 | 
						|
		,szorgalom.C_NAME							Szorgalom
 | 
						|
		,magatartas.C_NAME							Magatartas
 | 
						|
		,C_TEMA										Megjegyzes
 | 
						|
		,IIF(C_TEMA IS NOT NULL AND C_ERTEKELESTIPUSA IN (1519, 1520), '<i>(' + CAST(CHAR(ROW_NUMBER() OVER (PARTITION BY te.C_TANULOID, C_ERTEKELESTIPUSA, IIF(C_TEMA IS NOT NULL, 1, 0) ORDER BY C_ERTEKELESDATUM) + 96) AS NVARCHAR(10)) + ')</i>', '')	Jeloles
 | 
						|
		,IIF(C_TEMA IS NOT NULL AND C_ERTEKELESTIPUSA IN (1519, 1520), '<i>(' + CAST(CHAR(ROW_NUMBER() OVER (PARTITION BY te.C_TANULOID, C_ERTEKELESTIPUSA, IIF(C_TEMA IS NOT NULL, 1, 0) ORDER BY C_ERTEKELESDATUM) + 96) AS NVARCHAR(10)) + ')</i>: ' + C_TEMA, '') JelolesTemaval 
 | 
						|
	FROM T_TANULOERTEKELES_OSSZES te
 | 
						|
		INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulo ON tanulo.TanuloId = te.C_TANULOID
 | 
						|
		LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES oe ON oe.Id = te.Id
 | 
						|
		LEFT JOIN T_OSZTALYFONOKIERTEKELES_OSSZES ofoe ON ofoe.Id = te.Id
 | 
						|
		LEFT JOIN T_TANTARGY_OSSZES t ON t.Id = te.C_TANTARGYID
 | 
						|
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES jegy ON jegy.Id = C_OSZTALYZAT AND jegy.C_TANEVID = @tanevId
 | 
						|
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalom ON szorgalom.Id = C_SZORGALOM AND szorgalom.C_TANEVID = @tanevId
 | 
						|
		LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartas ON magatartas.Id = C_MAGATARTAS AND magatartas.C_TANEVID = @tanevId		
 | 
						|
		LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = te.C_OSZTALYCSOPORTID
 | 
						|
	WHERE
 | 
						|
		te.Torolt = 'F'
 | 
						|
		AND te.C_ERTEKELESDATUM >= BelepesDatum AND (te.C_ERTEKELESDATUM <= KilepesDatum OR KilepesDatum IS NULL)		
 | 
						|
		AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
 | 
						|
		AND (t.C_TARGYKATEGORIA <> 1248 OR t.C_TARGYKATEGORIA IS NULL)
 | 
						|
)
 |