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