90 lines
No EOL
3.6 KiB
Transact-SQL
90 lines
No EOL
3.6 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS dbo.sp_GetDokumentumTanitasiNapokSorszama
|
|
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
|
|
GO |