kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190121155812_AL_17/uspGetMulasztasokDatumNezetDataByOsztalyCsoportId.sql
2024-03-13 00:33:46 +01:00

49 lines
1.7 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
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(C_TANULOID) AS MulasztasokSzama,
tcs.C_OSZTALYCSOPORTID AS OsztalyCsoportId
FROM T_TANULOCSOPORT tcs
INNER JOIN T_TANULOMULASZTAS tm ON tm.C_ORATANULOIID = tcs.C_TANULOID
INNER JOIN T_TANITASIORA tn ON tn.ID = tm.C_TANITASIORAKID AND (@pIsCsoportVezeto = 0 OR tn.C_OSZTALYCSOPORTID = @pOsztalyCsoportId)
INNER JOIN T_TANULO tanulo ON tanulo.ID = tm.C_ORATANULOIID
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 (tanulo.C_MAGANTANULO = 'F' OR (tanulo.C_MAGANTANULO = 'T' AND tanulo.C_MAGANTANULOSAGKEZDETE > tn.C_DATUM))
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