46 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP FUNCTION IF EXISTS fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent
 | 
						|
GO
 | 
						|
 | 
						|
CREATE FUNCTION fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent (@tanevId INT, @osztalyCsoportId INT, @atsoroltTanuloOrak BIT = 1)
 | 
						|
  RETURNS @result TABLE (
 | 
						|
    	 Orakszama int
 | 
						|
			,TanuloId int
 | 
						|
			,TantargyId int
 | 
						|
      ,TantargyNev nvarchar (255)
 | 
						|
      ,Fotargye char(1)
 | 
						|
      ,Altargye char(1)
 | 
						|
      ,Gyakorlati char(1)
 | 
						|
   )
 | 
						|
AS BEGIN
 | 
						|
 | 
						|
  DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
 | 
						|
 | 
						|
  INSERT INTO @result
 | 
						|
  SELECT
 | 
						|
     COUNT(1) AS Orakszama
 | 
						|
    ,TANULO.TanuloId
 | 
						|
    ,TANTARGY.ID AS TantargyId
 | 
						|
    ,ISNULL(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TantargyNev
 | 
						|
    ,C_FOTARGYE AS Fotargye
 | 
						|
    ,C_ALTANTARGYKENTNYOMTATVANYBAN AS Altargye
 | 
						|
    ,C_GYAKORLATI AS Gyakorlati
 | 
						|
  FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') AS TANULO
 | 
						|
  	INNER JOIN T_TANULOCSOPORT_OSSZES  AS TANULOCSOPORT  ON TANULOCSOPORT.C_TANULOID = TANULO.TanuloId
 | 
						|
  	INNER JOIN T_TANITASIORA_OSSZES    AS TANITASIORA    ON TANITASIORA.C_OSZTALYCSOPORTID = TANULOCSOPORT.C_OSZTALYCSOPORTID AND TANITASIORA.C_DATUM >= TANULOCSOPORT.C_BELEPESDATUM AND   (TANULOCSOPORT.C_KILEPESDATUM IS NULL OR TANITASIORA.C_DATUM <= TANULOCSOPORT.C_KILEPESDATUM)
 | 
						|
  	INNER JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = TANITASIORA.C_OSZTALYCSOPORTID
 | 
						|
  		and OSZTALYCSOPORT.C_FELADATKATEGORIAID = @kategoriaId
 | 
						|
  	INNER JOIN T_TANTARGY_OSSZES       AS TANTARGY       ON TANTARGY.ID = TANITASIORA.C_TANTARGYID
 | 
						|
  	INNER JOIN T_NAPTARIHET_OSSZES     AS NAPTARIHETEK   ON TANITASIORA.C_DATUM BETWEEN NAPTARIHETEK.C_HETKEZDONAPJA AND NAPTARIHETEK.C_HETUTOLSONAPJA
 | 
						|
  WHERE
 | 
						|
  	    TANULOCSOPORT.TOROLT = 'F' AND TANITASIORA.TOROLT = 'F' AND OSZTALYCSOPORT.TOROLT = 'F' AND TANTARGY.TOROLT = 'F'
 | 
						|
  	AND TANITASIORA.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId))
 | 
						|
  	AND TANITASIORA.C_MEGTARTOTT = 'T'
 | 
						|
  	AND NaptariHetek.C_TANEVID = @tanevId
 | 
						|
  	AND (@atsoroltTanuloOrak = 1 OR TANITASIORA.C_DATUM >= TANULO.BelepesDatum )
 | 
						|
  	AND (TANULO.KilepesDatum IS NULL OR TANITASIORA.C_DATUM <= TANULO.KilepesDatum)
 | 
						|
  GROUP BY TANULO.TanuloId, TANTARGY.ID, C_GYAKORLATI, TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
 | 
						|
 | 
						|
    RETURN
 | 
						|
END
 | 
						|
GO
 |