65 lines
3.9 KiB
Transact-SQL
65 lines
3.9 KiB
Transact-SQL
-- =============================================
|
|
-- Description: Foglalkozások egész évben megtartandó óráinak száma.
|
|
-- =============================================
|
|
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFoglalkozasokMegtartandoOraSzama]
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[sp_GetFoglalkozasokMegtartandoOraSzama]
|
|
AS
|
|
BEGIN
|
|
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
|
|
SET NOCOUNT ON;
|
|
|
|
select ID foglalkozasID, count(OraID) OraSzam from(
|
|
select t_foglalkozas_OSSZES.ID ID, T_ORARENDIORA_OSSZES.ID OraID from
|
|
T_ORARENDIORA_OSSZES
|
|
inner join t_foglalkozas_OSSZES on T_ORARENDIORA_OSSZES.C_FOGLALKOZASID = T_FOGLALKOZAS_OSSZES.ID
|
|
inner join T_NAPTARINAP_OSSZES on T_ORARENDIORA_OSSZES.C_HETNAPJA = T_NAPTARINAP_OSSZES.C_HETNAPJA
|
|
and (T_ORARENDIORA_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_ORARENDIORA_OSSZES.C_HETIREND = 1554)
|
|
|
|
INNER JOIN T_TANEV_OSSZES ON T_NAPTARINAP_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID and t_foglalkozas_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
|
|
left join T_TANITASIORA_OSSZES on T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANITASIORA_OSSZES.C_DATUM
|
|
and T_TANITASIORA_OSSZES.C_ORARENDIORAGROUPID = T_ORARENDIORA_OSSZES.C_ORARENDIORAGROUPID
|
|
and T_TANITASIORA_OSSZES.C_DATUM BETWEEN T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE
|
|
and T_TANITASIORA_OSSZES.C_MEGTARTOTT ='F'
|
|
and T_TANITASIORA_OSSZES.TOROLT='F'
|
|
|
|
left join T_OSZTALYCSOPORT_TANEVRENDJE on T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
|
|
|
|
where NOT EXISTS (Select 1 from
|
|
T_TANEVRENDJE_OSSZES
|
|
left join T_OSZTALYCSOPORT_TANEVRENDJE on t_foglalkozas_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
|
|
WHERE T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANEVRENDJE_OSSZES.C_DATUM
|
|
and (T_TANEVRENDJE_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_TANEVRENDJE_OSSZES.C_HETIREND = 1554)
|
|
and T_TANEVRENDJE_OSSZES.C_ORARENDINAP ='F'
|
|
and (T_TANEVRENDJE_OSSZES.C_OSSZESCSOPORTRAVONATKOZIK='T' OR T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
|
|
and T_TANEVRENDJE_OSSZES.TOROLT='F'
|
|
and T_NAPTARINAP_OSSZES.C_NAPDATUMA >= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE
|
|
and T_NAPTARINAP_OSSZES.C_NAPDATUMA <= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE
|
|
))
|
|
AND T_TANITASIORA_OSSZES.ID is null
|
|
AND T_TANEV_OSSZES.C_AKTIV = 'T' AND T_TANEV_OSSZES.TOROLT='F'
|
|
|
|
union all
|
|
|
|
select foglalkozas.ID ID, T_TANITASIORA_OSSZES.id OraID
|
|
from T_TANITASIORA_OSSZES
|
|
inner join ( select ID, C_OSZTALYCSOPORTID from t_foglalkozas_OSSZES where torolt='F' ) foglalkozas on T_TANITASIORA_OSSZES.C_FOGLALKOZASID = foglalkozas.ID
|
|
inner join T_NAPTARINAP_OSSZES on T_TANITASIORA_OSSZES.C_HETNAPJA = T_NAPTARINAP_OSSZES.C_HETNAPJA
|
|
left join T_OSZTALYCSOPORT_TANEVRENDJE on foglalkozas.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
|
|
where
|
|
C_ORARENDIORAGROUPID is null and T_TANITASIORA_OSSZES.TOROLT='F'
|
|
and
|
|
NOT EXISTS (Select 1 from
|
|
T_TANEVRENDJE_OSSZES
|
|
left join T_OSZTALYCSOPORT_TANEVRENDJE on foglalkozas.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID
|
|
WHERE T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANEVRENDJE_OSSZES.C_DATUM
|
|
and (T_TANEVRENDJE_OSSZES.C_HETIREND = T_NAPTARINAP_OSSZES.C_HETIREND OR T_TANEVRENDJE_OSSZES.C_HETIREND = 1554)
|
|
and T_TANEVRENDJE_OSSZES.C_ORARENDINAP ='F'
|
|
and (T_TANEVRENDJE_OSSZES.C_OSSZESCSOPORTRAVONATKOZIK='T' OR T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
|
|
and T_TANEVRENDJE_OSSZES.TOROLT='F'))
|
|
) orak
|
|
|
|
Group by ID
|
|
END
|
|
GO
|