kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetMulasztasokSzama.sql
2024-03-13 00:33:46 +01:00

69 lines
1.6 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetMulasztasokSzama
GO
CREATE PROCEDURE uspGetMulasztasokSzama
@pTanevId int
,@pTanarId int
,@pDarab int
,@pMulasztasTipusKeses int
,@pMulasztasTipusHianyzas int
,@pIsSzuperOsztalyFonok bit
AS BEGIN
SET NOCOUNT ON;
DECLARE
@sql nvarchar(max)
SET @sql = N'
SELECT TOP (@pDarab)
tn.C_DATUM AS MulasztasDatuma
,FORMAT(tn.C_DATUM, ''dddd'', ''hu-HU'') AS MulasztasNapja
,COUNT(tm.ID) AS MulasztasokSzama
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = tm.C_TANITASIORAKID
AND tn.TOROLT = ''F''
LEFT JOIN T_OSZTALY_OSSZES o ON o.ID = tn.C_OSZTALYCSOPORTID
AND o.TOROLT = ''F''
'
IF @pIsSzuperOsztalyFonok = 0
SET @sql += N'
AND (o.C_OSZTALYFONOKID = @pTanarId OR o.C_OFOHELYETTESID = @pTanarId)
'
SET @sql += N'
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = tn.C_OSZTALYCSOPORTID
AND cs.TOROLT = ''F''
'
IF @pIsSzuperOsztalyFonok = 0
SET @sql += N'
AND cs.C_CSOPORTVEZETOID = @pTanarId
'
SET @sql += N'
WHERE tm.C_TANEVID = @pTanevId
AND tm.TOROLT = ''F''
AND tm.C_IGAZOLT IS NULL
AND tm.C_TIPUS BETWEEN @pMulasztasTipusKeses AND @pMulasztasTipusHianyzas
AND COALESCE(o.ID, cs.ID) IS NOT NULL
GROUP BY
tn.C_DATUM
ORDER BY
tn.C_DATUM DESC
'
EXEC sp_executesql @sql, N'
@pTanevId int
,@pTanarId int
,@pDarab int
,@pMulasztasTipusKeses int
,@pMulasztasTipusHianyzas int'
,@pTanevId = @pTanevId
,@pTanarId = @pTanarId
,@pDarab = @pDarab
,@pMulasztasTipusKeses = @pMulasztasTipusKeses
,@pMulasztasTipusHianyzas = @pMulasztasTipusHianyzas
END
GO