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

69 lines
No EOL
3.6 KiB
Transact-SQL

-- =============================================
-- Description: Rudlof Kristóf - Tanár órarendi lefedettség
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanarOrarendLefedettseg]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanarOrarendLefedettseg]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanarOrarendLefedettseg]
@intezmenyId int,
@tanevId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
declare @AktivtanevId int = (select Id from T_TANEV_OSSZES tanev where c_aktiv='T' and c_intezmenyId=@intezmenyId and Torolt='F')
declare @HetEleje date
declare @HetVege date
if (@tanevId=@AktivtanevId)
begin
set @HetEleje =(select distinct nh.c_hetkezdonapja from T_NAPTARIHET_OSSZES nh where getdate()>nh.c_hetkezdonapja and getdate()<nh.c_hetutolsonapja and nh.torolt='F' and nh.c_tanevid=@tanevid and nh.c_intezmenyId=@intezmenyId)
set @HetVege =(select distinct nh.c_hetutolsonapja from T_NAPTARIHET_OSSZES nh where getdate()>nh.c_hetkezdonapja and getdate()<nh.c_hetutolsonapja and nh.torolt='F' and nh.c_tanevid=@tanevid and nh.c_intezmenyId=@intezmenyId)
end
begin
declare @UtolsoNap date = (select c_napdatuma from t_naptarinap_osszes where c_naptipusa=1395 and c_intezmenyId=@intezmenyId and c_tanevId=@tanevid and torolt='F')
set @HetEleje =(select distinct nh.c_hetkezdonapja from T_NAPTARIHET_OSSZES nh where @UtolsoNap>nh.c_hetkezdonapja and @UtolsoNap<nh.c_hetutolsonapja and nh.torolt='F' and nh.c_tanevid=@tanevid and nh.c_intezmenyId=@intezmenyId)
set @HetVege =(select distinct nh.c_hetutolsonapja from T_NAPTARIHET_OSSZES nh where @UtolsoNap>nh.c_hetkezdonapja and @UtolsoNap<nh.c_hetutolsonapja and nh.torolt='F' and nh.c_tanevid=@tanevid and nh.c_intezmenyId=@intezmenyId)
end
--órarendi lefedettség
create table #csoportok (CsoportId int, Pedagogus nvarchar(max), CsoportTipus nvarchar(max), Oraszam float, Hetirend nvarchar(max))
insert into #csoportok
select distinct cs.id, f.c_nyomtatasinev, d.c_name, fog.c_oraszam, Hetirend.c_name from T_CSOPORT_OSSZES cs
inner join T_FOGLALKOZAS_OSSZES fog on fog.c_osztalycsoportid=cs.id and fog.c_tanevid=@tanevid and fog.torolt='F'
inner join T_ORARENDIORA_OSSZES oo on oo.c_foglalkozasid=fog.id and ((oo.c_oraervenyessegkezdete<=@HetEleje and oo.c_oraervenyessegkezdete>=@HetEleje) or
(oo.c_oraervenyessegkezdete<=@HetVege and oo.c_oraervenyessegvege>=@HetEleje))
and oo.c_tanevid=@tanevid and oo.torolt='F'
inner join T_FOGLALKOZASOK_TANAROK_OSSZES ft on ft.c_foglalkozasokid=fog.id
inner join T_FELHASZNALO_OSSZES f on f.id=ft.c_tanarokid and f.c_intezmenyid=@intezmenyId and f.c_tanevid=@tanevid and f.torolt='F'
inner join (select distinct d.id, d.c_name from T_DICTIONARYITEMBASE_OSSZES d)d on d.id=cs.c_tipusa
inner join (select distinct d.id, d.c_name from T_DICTIONARYITEMBASE_OSSZES d)Hetirend on Hetirend.id=oo.c_hetirend
where cs.torolt='F' and cs.c_alintezmenyid=@intezmenyId and cs.c_altanevid=@tanevId
select Pedagogus COLUMN456, CsoportTipus COLUMN444, sum(Oraszam) COLUMN3670 from #csoportok cs group by Pedagogus, CsoportTipus order by Pedagogus
--órarendi lefedettség hetirenden
declare @cols as nvarchar(max),
@query as nvarchar(max);
select distinct @cols= isnull(@cols + ',','') +quotename(Hetirend) from #csoportok
set @query='select Pedagogus as COLUMN456, CsoportTipus COLUMN444, '+@cols+' from #csoportok cs pivot (sum(Oraszam) for Hetirend in ('+@cols+')) pv'
EXEC sp_executesql @query;
drop table #csoportok
END
GO