This commit is contained in:
2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View File

@@ -0,0 +1,416 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetESL_A03T01_1]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetESL_A03T01_1]
END
GO
CREATE PROCEDURE [dbo].[sp_GetESL_A03T01_1]
@tanevId INT,
@intezmenyId INT,
@feladatEllatasiHelyId INT,
@isFelevi INT = 0
AS
BEGIN
SET NOCOUNT ON;
--Táblák deklarálása
declare @tmpA03T01 table (Id nvarchar(100), [1307] int, [1308] int, [1309] int, [1310] int, [1311] int, [1312] int, [1313] int, [1314] int, [6471] int, [6474] int, [6477] int, [6478] int, Osszesen int, Lany int, Rendez int)
--declare @EvfolyamokTMP table (Id int, Evfolyam int)
declare @TanuloErtekeles table (Id int, Tanulo int, Ertekeles int, Tipus int)
declare @FeladatEllatasiHelyekIntezmenyhez table (FHId int, IntezmenyId int)
declare @FHhozTartozoTanulok table (Evfolyam int, TanuloId int, Neme int, IsKozepesMiatt int, IsRontasMiatt int)
declare @KetFeltetelTanulok table (Evfolyam int, TanuloId int, Neme int, IsHianyzasMiatt int, IsKiemeltMiatt int, IsGyermekVedelemMiatt int, IsAltalanosIskolaMiatt int)
declare @OsszesitettTanulok table (Tanulo int)
declare @2feltetelTeljesulTanulok table (Tanulo int)
--Dátumok deklarásása
DECLARE @FelevKezdete DATE = (select top 1 c_datum from t_tanevrendje tr where c_naptipusa=1394 AND c_tanevid=@tanevid AND c_intezmenyid=@intezmenyid AND torolt='F')
DECLARE @FelevVege DATE = (select top 1 c_datum from t_tanevrendje tr where c_naptipusa=1400 AND c_tanevid=@tanevid AND c_intezmenyid=@intezmenyid AND torolt='F')
DECLARE @FelHelyTipusKozepes FLOAT = 3.0
SELECT @FelHelyTipusKozepes =
IIF(
fh.C_OKTATASINEVELESIFELADATTIPUS IN (1160, 1161, 1162, 5435, 1176, 6463)
, 2.5
, 3.0
)
FROM T_FELADATELLATASIHELY fh
WHERE fh.ID = @feladatEllatasiHelyId AND fh.TOROLT = 'F'
INSERT INTO @FHhozTartozoTanulok (TanuloId, Evfolyam, Neme, IsKozepesMiatt, IsRontasMiatt)
SELECT tanulok.TanuloId, tanulok.Evfolyam, tanulok.Neme, tanulok.IsKozepesMiatt, tanulok.IsRontasMiatt FROM fnGetLemorzsolodottTanulokByFelhely(@feladatEllatasiHelyId, @tanevId, @isFelevi) as tanulok
INSERT INTO @TanuloErtekeles
select Id, C_tanuloid, c_ertekelesosztalyzatid, c_tipusid from T_TANULOERTEKELES te
INNER JOIN @FHhozTartozoTanulok fht on fht.TanuloId=te.C_TANULOID
where torolt='F' AND C_TANEVID=@tanevId
/* !!! a03t01 !!! */
-- 1. félév értékelésnél, minősítésnél....átlag<@FelHelyTipusKozepes
----------------------------------------------------------------------
-- 1
----------------------------------------------------------------------
--Szum
----------------------------------------------------------------------
declare @OsszesOsszesLany int= (select count(distinct TanuloId) from @FHhozTartozoTanulok fh WHERE fh.Neme=5)
insert into @tmpA03T01
select '5025', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesOsszesLany, -1 Rendez from
(select distinct TanuloId, Evfolyam from @FHhozTartozoTanulok )a
pivot (count(TanuloId) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 2
----------------------------------------------------------------------
--Szum lány
----------------------------------------------------------------------
insert into @tmpA03T01
select '4952', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesOsszesLany, 0 Rendez from
(select distinct TanuloId, Evfolyam from @FHhozTartozoTanulok fh WHERE fh.Neme=5)a
pivot (count(TanuloId) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 3
----------------------------------------------------------------------
-- Összes rontott
----------------------------------------------------------------------
declare @Osszes3atlagalattLany int=(select count(1) from @FHhozTartozoTanulok fht
where fht.Neme=5 AND IsKozepesMiatt = 1)
insert into @tmpA03T01
select '5578', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @Osszes3atlagalattLany, 1 Rendez
from (select TanuloId, Evfolyam from @FHhozTartozoTanulok fht WHERE IsKozepesMiatt = 1 ) a
PIVOT (count(TanuloId) for Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))pv
declare @OsszesrontottLany int=(select count(1) from @FHhozTartozoTanulok fht
where fht.Neme=5 AND IsRontasMiatt = 1)
insert into @tmpA03T01
select '5365', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesrontottLany, 1 Rendez
from (select TanuloId, Evfolyam from @FHhozTartozoTanulok fht WHERE IsRontasMiatt = 1 ) a
PIVOT (count(TanuloId) for Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))pv
----------------------------------------------------------------------
-- 4
----------------------------------------------------------------------
-- egy, vagy több tantárgyból elégtelen osztályzat
----------------------------------------------------------------------
insert into @OsszesitettTanulok
select distinct fht.TanuloId from @TanuloErtekeles te
inner join @FHhozTartozoTanulok fht on fht.TanuloId=te.Tanulo
where te.Tipus=1519 AND te.Ertekeles=1501
DECLARE @ElegtelenFeleviLany int=(select count(distinct fht.TanuloId) from @TanuloErtekeles te
inner join @FHhozTartozoTanulok fht on fht.TanuloId=te.Tanulo AND fht.Neme=5
where te.Tipus=1519 AND te.Ertekeles=1501)
insert into @tmpA03T01
select '5579', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @ElegtelenFeleviLany, 2 Rendez from (select distinct fht.TanuloId, fht.Evfolyam from @TanuloErtekeles te
inner join @FHhozTartozoTanulok fht on fht.TanuloId=te.Tanulo
where te.Tipus=1519 AND te.Ertekeles=1501
union
select null, null
where (select top 1 fht.TanuloId from @TanuloErtekeles te
inner join @FHhozTartozoTanulok fht on fht.TanuloId=te.Tanulo
where te.Tipus=1519 AND te.Ertekeles=1501)is null)a
pivot (count(TanuloId) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))pv
----------------------------------------------------------------------
-- 5
----------------------------------------------------------------------
-- félév, magatartás, 2
----------------------------------------------------------------------
insert into @OsszesitettTanulok
select distinct fht.TanuloId from @FHhozTartozoTanulok fht
inner join @TanuloErtekeles te on te.Tanulo=fht.TanuloId
inner join t_tanuloertekeles tanuloErtekeles on tanuloErtekeles.id=te.ID AND tanuloErtekeles.C_MAGATARTASERTEKID=1558
declare @OsszesFeleviRosszMagatartasLany int =(select count(distinct fht.TanuloId) from @FHhozTartozoTanulok fht
inner join @TanuloErtekeles te on te.Tanulo=fht.TanuloId
inner join t_tanuloertekeles tanuloErtekeles on tanuloErtekeles.id=te.ID AND tanuloErtekeles.C_MAGATARTASERTEKID=1558 AND fht.Neme=5)
insert into @tmpA03T01
select '5580', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesFeleviRosszMagatartasLany, 3 Rendez from (select fht.TanuloId Tanulo, fht.Evfolyam Evfolyam from @FHhozTartozoTanulok fht
inner join @TanuloErtekeles te on te.Tanulo=fht.TanuloId
inner join t_tanuloertekeles tanuloErtekeles on tanuloErtekeles.id=te.ID AND tanuloErtekeles.C_MAGATARTASERTEKID=1558
union
select null, null where
(select top 1 fht.TanuloId Evfolyam from @FHhozTartozoTanulok fht
inner join @TanuloErtekeles te on te.Tanulo=fht.TanuloId
inner join t_tanuloertekeles tanuloErtekeles on tanuloErtekeles.id=te.ID AND tanuloErtekeles.C_MAGATARTASERTEKID=1558)is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 6
----------------------------------------------------------------------
-- félév, szorgalom, 2
----------------------------------------------------------------------
insert into @OsszesitettTanulok
select distinct fht.TanuloId from @FHhozTartozoTanulok fht
inner join @TanuloErtekeles te on te.Tanulo=fht.TanuloId
inner join t_tanuloertekeles tanuloErtekeles on tanuloErtekeles.id=te.ID AND tanuloErtekeles.C_SZORGALOMERTEKID=1562
declare @OsszesFeleviRosszSzorgalomLany int =(select count(distinct fht.TanuloId) from @FHhozTartozoTanulok fht
inner join @TanuloErtekeles te on te.Tanulo=fht.TanuloId
inner join t_tanuloertekeles tanuloErtekeles on tanuloErtekeles.id=te.ID AND tanuloErtekeles.C_SZORGALOMERTEKID=1562 AND fht.Neme=5)
insert into @tmpA03T01
select '5581', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesFeleviRosszSzorgalomLany, 4 Rendez from (select fht.TanuloId Tanulo, fht.Evfolyam Evfolyam from @FHhozTartozoTanulok fht
inner join @TanuloErtekeles te on te.Tanulo=fht.TanuloId
inner join t_tanuloertekeles tanuloErtekeles on tanuloErtekeles.id=te.ID AND tanuloErtekeles.C_SZORGALOMERTEKID=1562
union
select null, null
where (select top 1 fht.TanuloId Tanulo from @FHhozTartozoTanulok fht
inner join @TanuloErtekeles te on te.Tanulo=fht.TanuloId
inner join t_tanuloertekeles tanuloErtekeles on tanuloErtekeles.id=te.ID AND tanuloErtekeles.C_SZORGALOMERTEKID=1562)is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 7
----------------------------------------------------------------------
--adott évben évismétlés
----------------------------------------------------------------------
insert into @OsszesitettTanulok
select distinct fht.TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.c_evismetlo='T' AND fht.TanuloId=t.id
declare @OsszesEvismetloTanuloLany int =(select count(fht.TanuloId) from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.c_evismetlo='T' AND fht.TanuloId=t.id AND fht.TanuloId=t.id AND fht.Neme=5)
insert into @tmpA03T01
select '5582', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesEvismetloTanuloLany, 5 Rendez from (select fht.TanuloId Tanulo, fht.Evfolyam Evfolyam from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.c_evismetlo='T' AND fht.TanuloId=t.id AND fht.TanuloId=t.id
union
select null, null where (select top 1 fht.TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.c_evismetlo='T' AND fht.TanuloId=t.id AND fht.TanuloId=t.id) is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 8
----------------------------------------------------------------------
--Félévben 50 órát elérő igazolatlan hiányzás
----------------------------------------------------------------------
INSERT INTO @OsszesitettTanulok
SELECT DISTINCT fht.Tanuloid Tanulo FROM T_TANULOMULASZTAS tm
INNER JOIN @FHhozTartozoTanulok fht ON fht.TanuloId = tm.C_ORATANULOIID
INNER JOIN t_tanitasiora tao ON tao.id=tm.C_TANITASIORAKID AND tao.C_DATUM BETWEEN @FelevKezdete AND @FelevVege
LEFT JOIN T_CSOPORT cs ON cs.ID = tao.C_OSZTALYCSOPORTID AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
WHERE tm.C_TANEVID = @tanevId
AND cs.ID IS NULL
GROUP BY fht.TanuloId
HAVING COUNT(Tanuloid)>50
declare @Osszes50fFelettiIgazolatlanLany int=(select count(Tanulo) from (select fht.Tanuloid Tanulo from T_TANULOMULASZTAS tm
inner join @FHhozTartozoTanulok fht on fht.TanuloId=tm.C_ORATANULOIID AND fht.Neme=5
inner join t_tanitasiora tao on tao.id=tm.C_TANITASIORAKID AND tao.C_DATUM BETWEEN @FelevKezdete AND @FelevVege
LEFT JOIN T_CSOPORT cs ON cs.ID = tao.C_OSZTALYCSOPORTID AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
where tm.C_IGAZOLT='F' AND tm.c_tanevid=@tanevId AND cs.ID IS NULL
group by fht.TanuloId
having count(Tanuloid)>50)a)
insert into @tmpA03T01
select '5583',*,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @Osszes50fFelettiIgazolatlanLany, 6 Rendez from (select Tanulo, Evfolyam from (select fht.Tanuloid Tanulo, fht.Evfolyam from T_TANULOMULASZTAS tm
inner join @FHhozTartozoTanulok fht on fht.TanuloId=tm.C_ORATANULOIID
inner join t_tanitasiora tao on tao.id=tm.C_TANITASIORAKID AND tao.C_DATUM>@FelevKezdete AND tao.C_DATUM<@FelevVege
LEFT JOIN T_CSOPORT cs ON cs.ID = tao.C_OSZTALYCSOPORTID AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
where tm.C_IGAZOLT='F' AND tm.c_tanevid=@tanevId AND cs.ID IS NULL
group by fht.TanuloId, fht.Evfolyam
having count(Tanuloid)>50)a
union
select null, null where (select top 1 fht.Tanuloid from T_TANULOMULASZTAS tm
inner join @FHhozTartozoTanulok fht on fht.TanuloId=tm.C_ORATANULOIID
inner join t_tanitasiora tao on tao.id=tm.C_TANITASIORAKID AND tao.C_DATUM BETWEEN @FelevKezdete AND @FelevVege
LEFT JOIN T_CSOPORT cs ON cs.ID = tao.C_OSZTALYCSOPORTID AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
where tm.C_IGAZOLT='F' AND tm.C_TANEVID = @tanevId AND cs.ID IS NULL
group by fht.TanuloId
having count(Tanuloid)>50
) is null
)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 9
----------------------------------------------------------------------
--Szülő kérésére magántanuló
----------------------------------------------------------------------
insert into @OsszesitettTanulok
select distinct fht.TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_MAGANTANULOSAGANAKOKA in (663, 664) AND fht.TanuloId=t.id
declare @OsszesSzuloMagantanuloLany int =(select count(fht.TanuloId) from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_MAGANTANULOSAGANAKOKA in (663, 664) AND fht.TanuloId=t.id AND fht.Neme=5)
insert into @tmpA03T01
select '5584', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesSzuloMagantanuloLany, 7 Rendez from (select fht.TanuloId Tanulo, fht.Evfolyam Evfolyam from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_MAGANTANULOSAGANAKOKA in (663, 664) AND fht.TanuloId=t.id
union
select null, null where (select top 1 fht.TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_MAGANTANULOSAGANAKOKA in (663, 664) AND fht.TanuloId=t.id) is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 10
----------------------------------------------------------------------
--Menekült, menedékjoggal rendelkező
----------------------------------------------------------------------
insert into @OsszesitettTanulok
select distinct fht.TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_MENEDEKJOGGALRENDELKEZO='T'and fht.TanuloId=t.id
declare @OsszesMenedekjoggalRendLany int =(select count(fht.TanuloId) from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_MENEDEKJOGGALRENDELKEZO='T' AND fht.TanuloId=t.id AND fht.Neme=5)
insert into @tmpA03T01
select '5585', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesMenedekjoggalRendLany, 8 Rendez from (select fht.TanuloId Tanulo, fht.Evfolyam Evfolyam from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_MENEDEKJOGGALRENDELKEZO='T' AND fht.TanuloId=t.id
union
select null, null where (select top 1 fht.TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_MENEDEKJOGGALRENDELKEZO='T' AND fht.TanuloId=t.id) is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 11
----------------------------------------------------------------------
--Félévben veszélyeztetett tanulók száma
----------------------------------------------------------------------
insert into @OsszesitettTanulok
select distinct TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.id=fht.TanuloId AND t.C_VESZELYEZTETETT='T'
declare @OsszesVeszelyeztettLany int = (select count(TanuloId) from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.id=fht.TanuloId AND t.C_VESZELYEZTETETT='T' AND fht.Neme=5)
insert into @tmpA03T01
select '5586', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesVeszelyeztettLany, 9 Rendez from (select TanuloId, Evfolyam from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.id=fht.TanuloId AND t.C_VESZELYEZTETETT='T'
union
select null, null
where (select top 1 TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.id=fht.TanuloId AND t.C_VESZELYEZTETETT='T') is null)a
pivot (count(TanuloId) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 12
----------------------------------------------------------------------
--ideiglenes hatállyal elhelyezett vagy nevelésbe vett tanulók
----------------------------------------------------------------------
insert into @OsszesitettTanulok
select distinct fht.TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on fht.TanuloId=t.id AND t.C_ALLAMIGONDOZOTT='T'
declare @OsszesAllamigondozottLany int =(select count(fht.TanuloId) from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_ALLAMIGONDOZOTT='T' AND fht.TanuloId=t.id AND fht.Neme=5)
insert into @tmpA03T01
select '5587', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesAllamigondozottLany, 10 Rendez from (select fht.TanuloId Tanulo, fht.Evfolyam Evfolyam from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_ALLAMIGONDOZOTT='T' AND fht.TanuloId=t.id
union
select null, null where (select top 1 fht.TanuloId from @FHhozTartozoTanulok fht
inner join t_tanulo t on t.C_ALLAMIGONDOZOTT='T' AND fht.TanuloId=t.id) is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 13
----------------------------------------------------------------------
--legalább 2 feltétel teljesül
----------------------------------------------------------------------
INSERT INTO @KetFeltetelTanulok
SELECT
ftt.Evfolyam, ftt.TanuloId, ftt.Neme,
IIF(
(
SELECT COUNT(1) FROM T_TANULOMULASZTAS tm
INNER JOIN T_TANITASIORA tno ON tno.ID = tm.C_TANITASIORAKID AND tno.C_DATUM > @FelevKezdete AND tno.C_DATUM < @FelevVege
LEFT JOIN T_CSOPORT cs ON cs.ID = tno.C_OSZTALYCSOPORTID
WHERE (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))) AND tm.C_IGAZOLT='T' AND tm.C_TIPUS = 1500 AND tm.C_ORATANULOIID = ftt.TanuloId
) > 100,1,0) AS IsHianyzasMiatt,
IIF(
(
SELECT COUNT(1) FROM T_TANULO t WHERE t.ID = ftt.TanuloId AND (t.C_SAJATOSNEVELESU='T' OR t.C_BEILLESZKEDESINEHEZSEG='T' OR t.C_HATRANYOSHELYZETU IN (1122, 1123))
) > 0,1,0) AS IsKiemeltMiatt,
IIF(
(
SELECT COUNT(1) FROM T_TANULO t WHERE t.ID = ftt.TanuloId AND t.C_RENDSZERESGYERMEKVEDELMIKEDV IS NOT NULL
) > 0,1,0) AS IsGyermekVedelemMiatt,
IIF(
(
SELECT COUNT(1) FROM T_FELHASZNALO t
INNER JOIN T_FELADATELLATASIHELY fh ON fh.C_OKTATASINEVELESIFELADATTIPUS IN (1158,1178) AND fh.ID = @feladatEllatasiHelyId
WHERE t.ID = ftt.TanuloId AND DATEDIFF(YEAR, t.C_SZULETESIDATUM, GETDATE()) >= 16
) > 0,1,0) AS IsAltalanosIskolaMiatt
FROM @FHhozTartozoTanulok ftt
DELETE kt FROM @KetFeltetelTanulok kt WHERE (kt.IsHianyzasMiatt + kt.IsKiemeltMiatt + kt.IsGyermekVedelemMiatt + kt.IsAltalanosIskolaMiatt) < 2
declare @OsszesOsszeslanyMin2 int = (select count(1) FROM @KetFeltetelTanulok ft WHERE ft.Neme=5)
insert into @tmpA03T01
select '5588', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesOsszeslanyMin2, 13 Rendez from
(select kt.TanuloId, kt.Evfolyam from @KetFeltetelTanulok kt) a
pivot (count (TanuloId) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 14
----------------------------------------------------------------------
--kettő feltétel esetén ... félévben 100 órát elért hiányzás
----------------------------------------------------------------------
declare @Osszes100IgazoltLany int = (select count(1) from @KetFeltetelTanulok kt WHERE kt.IsHianyzasMiatt = 1 AND kt.NEME = 5)
insert into @tmpA03T01
select '5589', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @Osszes100IgazoltLany, 14 Rendez from
(select distinct kt.Tanuloid, kt.Evfolyam from @KetFeltetelTanulok kt WHERE kt.IsHianyzasMiatt = 1) a
pivot (count(TanuloId) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 15
----------------------------------------------------------------------
--kettő feltétel ... kiemelet fogyelmet igénylő --sni
----------------------------------------------------------------------
declare @OsszesSni2feltetelLany int = (select count(1) from @KetFeltetelTanulok kt WHERE kt.IsKiemeltMiatt = 1 AND kt.NEME = 5)
insert into @tmpA03T01
select '5590', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478], @OsszesSni2feltetelLany, 15 Rendez from
(select kt.TanuloId, kt.Evfolyam from @KetFeltetelTanulok kt WHERE kt.IsKiemeltMiatt = 1)a
pivot (count(TanuloId) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 16
----------------------------------------------------------------------
--kettő feltétel ... kiemelet fogyelmet igénylő --rendszeres gyermekvédelmi
declare @OsszesRgyT2feltetelLany int = (select count(1) from @KetFeltetelTanulok kt WHERE kt.IsGyermekVedelemMiatt = 1 AND kt.NEME = 5)
insert into @tmpA03T01
select '5591', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], @OsszesRgyT2feltetelLany, 16 Rendez from
(select kt.TanuloId, kt.Evfolyam from @KetFeltetelTanulok kt WHERE kt.IsGyermekVedelemMiatt = 1)a
pivot (count(TanuloId) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
----------------------------------------------------------------------
-- 17
----------------------------------------------------------------------
--kettő feltétel ... alapfokú oktatásban 16
----------------------------------------------------------------------
declare @OsszesAlapfoku16AlattLany int = (select count(1) from @KetFeltetelTanulok kt WHERE kt.IsAltalanosIskolaMiatt = 1 AND kt.NEME = 5)
insert into @tmpA03T01
select '5592', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], @OsszesAlapfoku16AlattLany, 17 Rendez from
(select kt.TanuloId, kt.Evfolyam Evfolyam from @KetFeltetelTanulok kt WHERE kt.IsAltalanosIskolaMiatt = 1)a
pivot (count(TanuloId) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
-- a03t01
select Id, [1307] 'Evfolyam5', [1308] 'Evfolyam6', [1309] 'Evfolyam7', [1310] 'Evfolyam8', [1311] 'Evfolyam9', [1312] 'Evfolyam10', [1313] 'Evfolyam11', [1314] 'Evfolyam12', [6471] 'KH1', [6474] 'KH2', [6477] 'SzH1', [6478] 'SzH2', Osszesen, Lany from @tmpA03T01
order by Rendez
END

View File

@@ -0,0 +1,90 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetESL_A03T02_1]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetESL_A03T02_1]
END
GO
CREATE PROCEDURE [dbo].[sp_GetESL_A03T02_1]
@tanevId int,
@intezmenyId int,
@feladatEllatasiHelyId int,
@isFelevi int = 0
AS
BEGIN
SET NOCOUNT ON;
--Táblák deklarálása
DECLARE @TanuloErtekeles TABLE (Id INT, Tanulo INT, Tantargy INT)
DECLARE @FHhozTartozoTanulok TABLE (TanuloId INT, Evfolyam INT, Neme INT)
DECLARE @Targyak TABLE (Tantargy INT)
INSERT INTO @FHhozTartozoTanulok (TanuloId, Evfolyam, Neme)
SELECT tanulok.TanuloId, tanulok.Evfolyam, tanulok.Neme FROM fnGetLemorzsolodottTanulokByFelhely(@feladatEllatasiHelyId, @tanevId, @isFelevi) as tanulok
--Dátumok deklarásása
declare @kezdet int,
@veg int,
@felev int
select top 1 @kezdet= iif(getdate()<=C_DATUM,1394,1400), --első félév
@veg= iif(getdate()<=C_DATUM,1400,1395) --második félév
from t_tanevrendje tr where c_naptipusa=1400 and c_tanevId=@tanevId and c_intezmenyId=@intezmenyId and torolt='F'
DECLARE @FelevKezdete DATE = (select top 1 c_datum from t_tanevrendje tr where c_naptipusa=@kezdet and c_tanevid=@tanevid and c_intezmenyid=@intezmenyid and torolt='F')
DECLARE @FelevVege DATE = (select top 1 c_datum from t_tanevrendje tr where c_naptipusa=@veg and c_tanevid=@tanevid and c_intezmenyid=@intezmenyid and torolt='F')
--csak az egyes félévi jegyek
INSERT INTO @TanuloErtekeles
select te.Id, C_tanuloid, t.c_targykategoria from T_TANULOERTEKELES te
inner join t_tantargy t on t.id=te.c_tantargyid
INNER JOIN @FHhozTartozoTanulok fht on fht.TanuloId=te.C_TANULOID
where te.torolt='F' and te.C_TANEVID=@tanevId and te.C_ERTEKELESOSZTALYZATID=1501 and te.c_tipusid = IIF(@isFelevi = 0,1520,1519)
insert into @Targyak (Tantargy)
select distinct id from T_DICTIONARYITEMBASE where id in (1202,1203,1204,1209,1200,1210,1198,1215,1219,1220,1221,1223,1224,1230,6755,1235,1240,1239,1242,6754)
-- !!!!!!!! --
select TargyNev.C_NAME Id, isnull(piv.[1307],0) 'Evfolyam5', isnull(piv.[1308],0) 'Evfolyam6', isnull(piv.[1309],0) 'Evfolyam7', isnull(piv.[1310],0) 'Evfolyam8',
isnull(piv.[1311],0) 'Evfolyam9', isnull(piv.[1312],0) 'Evfolyam10', isnull(piv.[1313],0) 'Evfolyam11', isnull(piv.[1314],0) 'Evfolyam12',
isnull(piv.[6471],0) 'KH1', isnull(piv.[6474],0) 'KH2', isnull(piv.[6477],0) 'SzH1', isnull(piv.[6478],0) 'SzH2',
isnull(Osszes.OsszesTanulo,0) Osszesen, isnull(OsszesLany.OsszesTanulo,0) Lany
from @Targyak Targyak
left join (
select * from (select distinct Tanulo, Evfolyam, case
when Tantargy in (1202) then 1202 --angol
when Tantargy in (1203) then 1203 --német
when Tantargy in (1204) then 1204 --francia
when Tantargy in (1205,1206,1207,1208,1209) then 1209 --egyéb nyelv
when Tantargy in (1200) then 1200 --nemzetiségi
when Tantargy in (1210) then 1210 --matek
when Tantargy in (1198) then 1198 -- magyar nyelv és irodalom
when Tantargy in (1215) then 1215 --történelem és társadalmi...
when Tantargy in (1219) then 1219 --fizika
when Tantargy in (1220) then 1220 --kémia
when Tantargy in (1221) then 1221 --biológia
when Tantargy in (1223) then 1223 --földrajz
when Tantargy in (1224) then 1224 --ének-zene
when Tantargy in (1229,1230) then 1230 --számítástechika, informatika
when Tantargy in (1232) then 6755 --technika
when Tantargy in (1235) then 1235 --testnevelés
when Tantargy in (6754) then 6754 --történelem
when Tantargy in (1240) then 1240 --szakmai gyakorlat
when Tantargy in (1239) then 1239 --szakmai elmélet
else 1242 --egyéb
end Tantargy
from @TanuloErtekeles te
inner join @FHhozTartozoTanulok fh on fh.TanuloId=te.Tanulo and fh.Evfolyam in (1307,1308,1309,1310, 1311, 1312, 1313, 1314, 6471, 6474, 6477, 6478))a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))piv
) piv on piv.Tantargy=Targyak.Tantargy
left join (select count(distinct Tanulo) OsszesTanulo, Tantargy from @TanuloErtekeles group by Tantargy) Osszes on Osszes.Tantargy=Targyak.Tantargy
left join (select count(distinct Tanulo) OsszesTanulo, Tantargy from (select Tanulo, Tantargy from @TanuloErtekeles te inner join @FHhozTartozoTanulok ft on te.Tanulo=ft.TanuloId and ft.Neme=5) a group by Tantargy) OsszesLany on OsszesLany.Tantargy=Targyak.Tantargy
inner join T_DICTIONARYITEMBASE TargyNev on TargyNev.Id=Targyak.Tantargy
END