90 lines
3.3 KiB
Transact-SQL
90 lines
3.3 KiB
Transact-SQL
/* Megszámolja, hogy az egyes típusú értesítésekbõl hány darab volt, az elmúlt 24 órában*/
|
|
DROP PROCEDURE IF EXISTS uspGetNapiOsszefoglaloErtesites
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[uspGetNapiOsszefoglaloErtesites]
|
|
@pTanuloId int = null
|
|
,@pTanuloIdp uniqueIdentifier = null
|
|
AS BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @DATUM DATETIME
|
|
SET @DATUM = DATEADD(dd, -1, GETDATE())
|
|
|
|
IF (@pTanuloId is null) BEGIN
|
|
SELECT @pTanuloId = ID FROM T_Felhasznalo WHERE C_IDPEgyediAzonosito = @pTanuloIdp
|
|
END
|
|
|
|
CREATE TABLE #NapiErtesitesek (
|
|
ErtesitesTipusa nvarchar(100)
|
|
,ErtesitesekSzama int
|
|
);
|
|
|
|
INSERT INTO #NapiErtesitesek
|
|
SELECT 'Ertekelesek', COUNT(1)
|
|
FROM T_TANULOERTEKELES te
|
|
WHERE te.TOROLT = 'F'
|
|
AND te.CREATED >= @DATUM
|
|
AND te.C_TANULOID = @pTanuloId
|
|
|
|
INSERT INTO #NapiErtesitesek
|
|
SELECT 'Mulasztasok', COUNT(1)
|
|
FROM T_TANULOMULASZTAS mul
|
|
WHERE mul.TOROLT = 'F'
|
|
AND mul.C_TIPUS IN (1499, 1500)
|
|
AND mul.C_ORATANULOIID = @pTanuloId
|
|
AND mul.CREATED >= @DATUM
|
|
|
|
INSERT INTO #NapiErtesitesek
|
|
SELECT 'Feljegyzesek', COUNT(1)
|
|
FROM T_TANULOESEMENY tes
|
|
INNER JOIN T_TANULO_TANULOESEMENY ttes ON tes.ID = ttes.C_TANULOESEMENYID
|
|
WHERE tes.C_TIPUS != 5483
|
|
AND (tes.C_MEGJEGYZES <> 'Rendszerüzenet' OR tes.C_MEGJEGYZES is NULL)
|
|
AND tes.TOROLT = 'F'
|
|
AND ttes.C_TANULOID = @pTanuloId
|
|
AND tes.CREATED >= @DATUM
|
|
|
|
INSERT INTO #NapiErtesitesek
|
|
SELECT 'HaziFeladatok', COUNT(1)
|
|
FROM T_DKT_FELADAT hf
|
|
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = hf.C_OSZTALYCSOPORTID
|
|
AND ((tcs.C_BELEPESDATUM <= hf.C_BEADASHATARIDO
|
|
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > hf.C_BEADASHATARIDO)) OR hf.C_BEADASHATARIDO IS NULL)
|
|
AND tcs.C_BELEPESDATUM < GETDATE() AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > GETDATE())
|
|
AND tcs.TOROLT = 'F'
|
|
WHERE hf.TOROLT = 'F'
|
|
AND tcs.C_TANULOID = @pTanuloId
|
|
AND (hf.C_LATHATOSAGIDOPONT IS NOT NULL
|
|
AND CAST(hf.C_LATHATOSAGIDOPONT AS DATE) <= DATEADD(hh, -7, GETDATE()))
|
|
AND hf.CREATED >= @DATUM
|
|
|
|
INSERT INTO #NapiErtesitesek
|
|
SELECT 'Uzenetek', count(1)
|
|
FROM T_TANULOESEMENY tes
|
|
INNER JOIN T_FELHASZNALO fh ON fh.ID = tes.C_FELJEGYZOID AND fh.TOROLT = 'F'
|
|
INNER JOIN T_TANULO_TANULOESEMENY tte ON tte.C_TANULOESEMENYID = tes.ID
|
|
WHERE fh.C_NYOMTATASINEV = 'Rendszerüzenet'
|
|
AND tes.C_TIPUS = 5482
|
|
AND tes.TOROLT = 'F'
|
|
AND EXISTS (SELECT 1 FROM T_TANULO_TANULOESEMENY ttes WHERE tes.ID = ttes.C_TANULOESEMENYID)
|
|
AND GETDATE() BETWEEN tes.C_KEZDETE AND tes.C_VEGE AND tes.CREATED >= @DATUM
|
|
AND tte.C_TANULOID = @pTanuloId
|
|
|
|
INSERT INTO #NapiErtesitesek
|
|
SELECT 'BejelentettSzamonkeresek',COUNT(*)
|
|
FROM T_SZAMONKERESELOREJELZES szk
|
|
INNER JOIN T_ORARENDIORA oo ON oo.C_ORARENDIORAGROUPID = szk.C_ORARENDIORAGROUPID
|
|
AND szk.C_SZAMONKERESDATUMA >= oo.C_ORAERVENYESSEGKEZDETE AND szk.C_SZAMONKERESDATUMA < oo.C_ORAERVENYESSEGVEGE
|
|
AND oo.TOROLT = 'F'
|
|
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
|
|
AND (tcs.C_BELEPESDATUM <= szk.C_SZAMONKERESDATUMA AND (tcs.C_KILEPESDATUM > szk.C_SZAMONKERESDATUMA OR tcs.C_KILEPESDATUM IS NULL))
|
|
AND tcs.TOROLT = 'F'
|
|
WHERE tcs.C_TANULOID = @pTanuloId
|
|
AND szk.TOROLT = 'F'
|
|
AND szk.CREATED >= @DATUM
|
|
|
|
SELECT * FROM #NapiErtesitesek
|
|
|
|
END
|
|
GO
|