-- ============================================= -- Description: Tanulók egész évben megtartandó óráinak száma -- ============================================= SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('[dbo].[sp_GetTanulokMegtartandoOraSzama]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_GetTanulokMegtartandoOraSzama] END GO CREATE PROCEDURE [dbo].[sp_GetTanulokMegtartandoOraSzama] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements. SET NOCOUNT ON; select TanuloId, count(OrarendId) OraSzam from ( select T_TANULOCSOPORT_OSSZES.C_TANULOID TanuloId, T_ORARENDIORA_OSSZES.id OrarendId from T_ORARENDIORA_OSSZES inner join ( select ID, C_OSZTALYCSOPORTID from t_foglalkozas_OSSZES where torolt='F' ) foglalkozas on T_ORARENDIORA_OSSZES.C_FOGLALKOZASID = foglalkozas.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_TANULOCSOPORT_OSSZES ON foglalkozas.C_OSZTALYCSOPORTID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE() AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM > GETDATE()) AND T_TANULOCSOPORT_OSSZES.TOROLT='F' left join T_TANITASIORA_OSSZES on (T_NAPTARINAP_OSSZES.C_NAPDATUMA = T_TANITASIORA_OSSZES.C_DATUM and T_TANITASIORA_OSSZES.C_ORARENDIORAID = T_ORARENDIORA_OSSZES.ID and T_TANITASIORA_OSSZES.C_MEGTARTOTT !='T' and T_TANITASIORA_OSSZES.TOROLT='F') inner join T_TANEV_OSSZES on T_NAPTARINAP_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID where 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' 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 T_TANULOCSOPORT_OSSZES.C_TANULOID TanuloId, T_TANITASIORA_OSSZES.id OrarendId 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_TANULOCSOPORT_OSSZES ON foglalkozas.C_OSZTALYCSOPORTID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM > GETDATE()) AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE() AND T_TANULOCSOPORT_OSSZES.TOROLT='F' inner join T_NAPTARINAP_OSSZES on T_NAPTARINAP_OSSZES.ID = T_TANITASIORA_OSSZES.C_NAPTARINAPID left join T_OSZTALYCSOPORT_TANEVRENDJE on foglalkozas.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID inner join T_TANEV_OSSZES on T_NAPTARINAP_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID where C_ORARENDIORAID 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')) AND T_TANEV_OSSZES.C_AKTIV='T' AND T_TANEV_OSSZES.TOROLT='F' ) orak group by TanuloId END