69 lines
1.6 KiB
Transact-SQL
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
|