SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('dbo.sp_GetDokumentumTanitasiNapokSorszama') IS NOT NULL BEGIN DROP PROCEDURE dbo.sp_GetDokumentumTanitasiNapokSorszama END GO CREATE PROCEDURE dbo.sp_GetDokumentumTanitasiNapokSorszama @tanevId INT, @osztalyId INT AS BEGIN SET NOCOUNT ON; --Tanítás nélküli hétköznapok DECLARE @TanitasNelkuliNapokTanevRendjeTable TABLE (Datum DATE) INSERT INTO @TanitasNelkuliNapokTanevRendjeTable SELECT TanevRendje.C_DATUM FROM T_TANEVRENDJE_OSSZES TanevRendje INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = TanevRendje.C_DATUM AND NaptariNap.C_TANEVID = @tanevId AND NaptariNap.TOROLT = 'F' INNER JOIN T_NAPTIPUS_OSSZES Naptipus ON Naptipus.ID = TanevRendje.C_NAPTIPUSA AND Naptipus.TOROLT = 'F' AND Naptipus.C_ALTANEVID = @tanevId WHERE TanevRendje.C_TANEVID = @tanevId AND TanevRendje.TOROLT = 'F' AND TanevRendje.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND Naptipus.C_ISSORSZAMOZANDO = 'F' AND (NaptariNap.C_ALAPHETNAPJA IS NULL OR NaptariNap.C_ALAPHETNAPJA BETWEEN 1408 AND 1412) UNION SELECT TanevRendje.C_DATUM FROM T_TANEVRENDJE_OSSZES TanevRendje INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = TanevRendje.C_DATUM AND NaptariNap.C_TANEVID = @tanevId AND NaptariNap.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE OsztalyCsoportTanevRendje ON OsztalyCsoportTanevRendje.C_TANEVRENDJEID = TanevRendje.ID INNER JOIN T_NAPTIPUS_OSSZES Naptipus ON Naptipus.ID = TanevRendje.C_NAPTIPUSA AND Naptipus.TOROLT = 'F' AND Naptipus.C_ALTANEVID = @tanevId WHERE TanevRendje.C_TANEVID = @tanevId AND TanevRendje.TOROLT = 'F' AND TanevRendje.C_OSSZESCSOPORTRAVONATKOZIK = 'F' AND Naptipus.C_ISSORSZAMOZANDO = 'F' AND OsztalyCsoportTanevRendje.C_OSZTALYCSOPORTID = @osztalyId AND (NaptariNap.C_ALAPHETNAPJA IS NULL OR NaptariNap.C_ALAPHETNAPJA BETWEEN 1408 AND 1412) --Hétvégi tanítási napok DECLARE @HetvegiTanitasiNapokTanevRendjeTable TABLE (Datum DATE) INSERT INTO @HetvegiTanitasiNapokTanevRendjeTable SELECT TanevRendje.C_DATUM FROM T_TANEVRENDJE_OSSZES TanevRendje INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = TanevRendje.C_DATUM AND NaptariNap.C_TANEVID = @tanevId AND NaptariNap.TOROLT = 'F' INNER JOIN T_NAPTIPUS_OSSZES Naptipus ON Naptipus.ID = TanevRendje.C_NAPTIPUSA AND Naptipus.TOROLT = 'F' AND Naptipus.C_ALTANEVID = @tanevId WHERE TanevRendje.c_tanevid = @tanevId AND TanevRendje.TOROLT = 'F' AND TanevRendje.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND Naptipus.C_ISSORSZAMOZANDO = 'T' AND (NaptariNap.C_ALAPHETNAPJA IS NULL OR NaptariNap.C_ALAPHETNAPJA IN (1413, 1414)) UNION SELECT TanevRendje.C_DATUM FROM T_TANEVRENDJE_OSSZES TanevRendje INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = TanevRendje.C_DATUM AND NaptariNap.C_TANEVID = @tanevId AND NaptariNap.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE OsztalyCsoportTanevRendje ON OsztalyCsoportTanevRendje.C_TANEVRENDJEID = TanevRendje.ID INNER JOIN T_NAPTIPUS_OSSZES Naptipus ON Naptipus.ID = TanevRendje.C_NAPTIPUSA AND Naptipus.TOROLT = 'F' AND Naptipus.C_ALTANEVID = @tanevId WHERE TanevRendje.C_TANEVID = @tanevId AND TanevRendje.TOROLT = 'F' AND TanevRendje.C_OSSZESCSOPORTRAVONATKOZIK = 'F' AND Naptipus.C_ISSORSZAMOZANDO = 'T' AND OsztalyCsoportTanevRendje.C_OSZTALYCSOPORTID = @osztalyId AND (NaptariNap.C_ALAPHETNAPJA IS NULL OR NaptariNap.C_ALAPHETNAPJA IN (1413, 1414)) --Result SELECT C_NAPDATUMA FROM T_NAPTARINAP_OSSZES NaptariNap WHERE NaptariNap.TOROLT = 'F' AND C_TANEVID = @tanevId AND C_NAPDATUMA NOT IN (SELECT Datum FROM @TanitasNelkuliNapokTanevRendjeTable) AND C_ALAPHETNAPJA BETWEEN 1408 AND 1412 UNION SELECT Datum FROM @HetvegiTanitasiNapokTanevRendjeTable END