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

59 lines
1.8 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetNemNaplozottOrakSzama
GO
CREATE PROCEDURE uspGetNemNaplozottOrakSzama
@pTanevId int
,@pIntezmenyId int
,@pFeladatKategoriaId int = null
AS
SET NOCOUNT ON;
DECLARE
@IdoszakKezdete DATE
,@IdoszakVege DATE = GETDATE();
SELECT @IdoszakKezdete = tv.C_KEZDONAP
FROM T_TANEV_OSSZES tv WHERE ID = @pTanevId;
SELECT
f.C_NYOMTATASINEV AS Tanar,
f.C_OKTATASIAZONOSITO AS TanarOktAzon,
RIGHT(CONCAT('00', o.Honap), 2) AS Honap,
o.Darab
FROM (
SELECT
ISNULL(oo.C_HELYETTESTANAROKID, oo.C_TANARID) AS C_TANARID,
MONTH(oo.C_DATUM) AS Honap,
COUNT(*) AS Darab
FROM T_ORARENDTELJES_OSSZES oo
WHERE oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
AND oo.C_DATUM >= @IdoszakKezdete
AND oo.C_DATUM < @IdoszakVege
AND oo.C_FELADATKATEGORIAID = CASE WHEN @pFeladatKategoriaId IS NOT NULL THEN @pFeladatKategoriaId ELSE oo.C_FELADATKATEGORIAID END
AND NOT EXISTS(
SELECT *
FROM dbo.T_TANITASIORA_OSSZES tt
WHERE tt.TOROLT = 'F'
AND tt.C_INTEZMENYID = oo.C_INTEZMENYID
AND tt.C_TANEVID = oo.C_TANEVID
AND tt.C_DATUM = oo.C_DATUM
AND tt.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
AND tt.C_TANTARGYID = oo.C_TANTARGYID
AND tt.C_TANARID = oo.C_TANARID
AND (
tt.C_ORASZAM = oo.C_ORASZAM
OR
(
tt.C_ORAKEZDETE = CAST(oo.C_DATUM AS DATETIME) + CAST(oo.C_ORAKEZDETE AS DATETIME)
AND
tt.C_ORAVEGE = CAST(oo.C_DATUM AS DATETIME) + CAST(oo.C_ORAVEGE AS DATETIME)
)
)
)
GROUP BY
ISNULL(oo.C_HELYETTESTANAROKID, oo.C_TANARID),
MONTH(oo.C_DATUM)
) o
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_TANARID and f.TOROLT = 'F'
GO