57 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS dbo.uspGetMulasztasokDatumNezetDataByOsztalyCsoportId
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE dbo.uspGetMulasztasokDatumNezetDataByOsztalyCsoportId
 | 
						|
  @pMulasztasTipusJelenlet int,
 | 
						|
  @pMulasztasTipusUres int,
 | 
						|
  @pAktualisTanevId int,
 | 
						|
  @pOsztalyCsoportId int,
 | 
						|
  @pIntezmenyId int,
 | 
						|
  @pIsCsoportVezeto int,
 | 
						|
  @pDefaultKatId int
 | 
						|
AS
 | 
						|
 | 
						|
BEGIN
 | 
						|
  SET DATEFIRST 1; -- Sets the first day of the week to a number from 1 (Monday) through 7 (Sunday).
 | 
						|
 | 
						|
SELECT
 | 
						|
    MulasztasDatuma
 | 
						|
    ,MulasztasokSzama
 | 
						|
    ,d.C_NAME AS MulasztasNapja
 | 
						|
    ,OsztalyCsoportId, d.C_INTEZMENYID
 | 
						|
FROM (
 | 
						|
    SELECT
 | 
						|
    tn.C_DATUM AS MulasztasDatuma,
 | 
						|
    COUNT(tm.ID) AS MulasztasokSzama,
 | 
						|
    tcs.C_OSZTALYCSOPORTID AS OsztalyCsoportId
 | 
						|
    FROM T_TANULOCSOPORT tcs
 | 
						|
    INNER JOIN T_TANULOMULASZTAS tm ON tm.C_ORATANULOIID = tcs.C_TANULOID AND tm.TOROLT = 'F'
 | 
						|
    INNER JOIN T_TANITASIORA tn ON tn.ID = tm.C_TANITASIORAKID AND (@pIsCsoportVezeto = 0 OR tn.C_OSZTALYCSOPORTID = @pOsztalyCsoportId) AND tn.TOROLT = 'F'
 | 
						|
	INNER JOIN T_TANULO tanulo ON tanulo.ID = tm.C_ORATANULOIID AND tanulo.TOROLT = 'F'
 | 
						|
	INNER JOIN T_TANULOCSOPORT tcso ON tcso.C_TANULOID=tanulo.ID AND tcso.C_BELEPESDATUM <= tn.C_DATUM AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tn.C_DATUM) AND tcso.TOROLT = 'F'
 | 
						|
    INNER JOIN T_OSZTALY o ON o.ID=tcso.C_OSZTALYCSOPORTID AND o.TOROLT = 'F'
 | 
						|
	INNER JOIN T_OSZTALYCSOPORT ocs ON o.ID=ocs.ID AND ocs.TOROLT = 'F'
 | 
						|
	INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID=tcso.ID AND tta.TOROLT = 'F'
 | 
						|
    WHERE tm.TOROLT = 'F'
 | 
						|
    AND tm.C_IGAZOLT IS NULL
 | 
						|
    AND tm.C_TIPUS <> @pMulasztasTipusJelenlet
 | 
						|
    AND tm.C_TIPUS <>  @pMulasztasTipusUres
 | 
						|
    AND tm.C_TANEVID = @pAktualisTanevId
 | 
						|
    AND tm.C_INTEZMENYID = @pIntezmenyId
 | 
						|
    AND tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
 | 
						|
    AND tcs.C_BELEPESDATUM <= tn.C_DATUM
 | 
						|
    AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tn.C_DATUM)
 | 
						|
	AND (tta.C_MAGANTANULO = 'F' OR (tta.C_MAGANTANULO = 'T' AND tta.C_MAGANTANULOSAGKEZDETE > tn.C_DATUM))
 | 
						|
	AND (tcso.C_OSZTALYCSOPORTID = @pOsztalyCsoportId OR ocs.C_FELADATKATEGORIAID = @pDefaultKatId) AND tcs.TOROLT = 'F'
 | 
						|
    GROUP BY
 | 
						|
    tn.C_DATUM,
 | 
						|
    tcs.C_OSZTALYCSOPORTID
 | 
						|
) x
 | 
						|
INNER JOIN T_DICTIONARYITEMBASE d ON d.C_VALUE = DATEPART(dw,x.MulasztasDatuma)
 | 
						|
    AND C_TYPE = N'HetnapjaTipus'
 | 
						|
    AND d.C_INTEZMENYID = @pIntezmenyId
 | 
						|
    AND d.C_TANEVID = @pAktualisTanevId
 | 
						|
ORDER BY MulasztasDatuma DESC
 | 
						|
END
 | 
						|
GO
 |