IF OBJECT_ID('fnGetNapirendUtkozesByTanar') IS NOT NULL BEGIN DROP FUNCTION fnGetNapirendUtkozesByTanar END GO CREATE FUNCTION fnGetNapirendUtkozesByTanar ( @startTime datetime, @endTime datetime, @tanarId int, @intezmenyId int, @tanevId int ) RETURNS INT BEGIN IF EXISTS ( SELECT 1 FROM T_NAPTARINAP_OSSZES n LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = n.C_NAPDATUMA INNER JOIN T_ORARENDIORA_OSSZES o ON ISNULL(tr.C_HETIREND, n.C_HETIREND) = o.C_HETIREND AND ISNULL(tr.C_HETNAPJA, n.C_HETNAPJA) = o.C_HETNAPJA AND n.C_INTEZMENYID = o.C_INTEZMENYID AND n.C_TANEVID = o.C_TANEVID WHERE CAST(CAST(@startTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAKEZDETE AS TIME) AS DATETIME) <= @endTime AND CAST(CAST(@endTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAVEGE AS TIME) AS DATETIME) >= @startTime AND o.C_TANARID = @tanarId AND n.C_TANEVID = @tanevId AND n.C_INTEZMENYID = @intezmenyId AND n.C_NAPDATUMA BETWEEN CAST(@startTime AS DATE) AND CAST(@endTime AS DATE) UNION ALL SELECT 1 FROM T_TANITASIORA_OSSZES o WHERE o.C_ORAKEZDETE <= @endTime AND o.C_ORAVEGE >= @startTime AND ISNULL(o.C_HELYETTESITOTANARID, o.C_ORATULAJDONOSID) = @tanarId AND o.C_TANEVID = @tanevId AND o.C_INTEZMENYID = @intezmenyId ) BEGIN RETURN 1 END RETURN 0 END GO