DROP PROCEDURE IF EXISTS dbo.uspGetMulasztasokDatumNezetDataByOsztalyCsoportId GO CREATE PROCEDURE dbo.uspGetMulasztasokDatumNezetDataByOsztalyCsoportId @pMulasztasTipusJelenlet int ,@pMulasztasTipusUres int ,@pAktualisTanevId int ,@pOsztalyCsoportId int ,@pIntezmenyId int ,@pIsCsoportVezeto int ,@pHetnapjaTipusTypeId int = 40 AS BEGIN SET NOCOUNT ON; SET DATEFIRST 1; -- Sets the first day of the week to a number from 1 (Monday) through 7 (Sunday). SELECT x.MulasztasDatuma ,x.MulasztasokSzama ,d.C_NAME AS MulasztasNapja ,@pOsztalyCsoportId AS OsztalyCsoportId ,d.C_INTEZMENYID ,x.CsoportTipusId FROM ( SELECT tn.C_DATUM AS MulasztasDatuma ,COUNT(tcs.C_TANULOID) AS MulasztasokSzama ,cs.C_TIPUSA AS CsoportTipusId FROM T_TANULOCSOPORT_OSSZES tcs INNER JOIN T_TANULOMULASZTAS_OSSZES tm ON tm.C_ORATANULOIID = tcs.C_TANULOID INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = tm.C_TANITASIORAKID AND (@pIsCsoportVezeto = 0 OR tn.C_OSZTALYCSOPORTID = @pOsztalyCsoportId) INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID = tn.C_OSZTALYCSOPORTID LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID INNER JOIN fnGetKapcsolodoOsztalycsoportok(@pOsztalyCsoportId) kocs on kocs.ID = tn.C_OSZTALYCSOPORTID WHERE tm.TOROLT = 'F' AND tcs.TOROLT = 'F' AND tn.TOROLT = 'F' AND ocs.TOROLT = 'F' AND tm.C_TANEVID = @pAktualisTanevId AND tm.C_INTEZMENYID = @pIntezmenyId AND tm.C_IGAZOLT IS NULL AND tm.C_TIPUS <> @pMulasztasTipusJelenlet AND tm.C_TIPUS <> @pMulasztasTipusUres 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) GROUP BY tn.C_DATUM, cs.C_TIPUSA ) x INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.C_VALUE = DATEPART(dw,x.MulasztasDatuma) AND d.C_DICTIONARYTYPEID = @pHetnapjaTipusTypeId AND d.C_INTEZMENYID = @pIntezmenyId AND d.C_TANEVID = @pAktualisTanevId ORDER BY MulasztasDatuma DESC END GO