kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170327110702_Init/Stored procedures/sp_GetTanulokMegtartandoOraSzama.sql
2024-03-13 00:33:46 +01:00

84 lines
4.3 KiB
Transact-SQL

-- =============================================
-- 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