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,555 @@
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
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, Osszesen int, Lany int, Rendez int)
declare @Dictionary table (Id int, Name nvarchar(max), Value int, Tipus nvarchar(max))
--declare @EvfolyamokTMP table (Id int, Evfolyam int)
declare @Evfolyamok 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 (Intezmeny int, FH int, Evfolyam int, TanuloId int, Neme 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'
--Táblák feltöltése
INSERT INTO @Dictionary
SELECT DISTINCT id, c_name, c_value, c_type FROM T_DICTIONARYITEMBASE
INSERT INTO @Evfolyamok
SELECT id, Evfolyam from (SELECT DISTINCT id, CASE
WHEN id in (1307,1330,1334) THEN 1307 /* 5. évfolyam*/
WHEN id in (1308) THEN 1308 /* 6. évfolyam*/
WHEN id in (1309,1331,1335) THEN 1309 /* 7. évfolyam*/
WHEN id in (1310,1324) THEN 1310 /* 8. évfolyam*/
WHEN id in (1311,1316,1332,1333,3018,3019,3020) THEN 1311 /* 9. évfolyam*/
WHEN id in (1312,1323) THEN 1312 /* 10. évfolyam*/
WHEN id in (1313, 1317, 1325,3016 ) THEN 1313 /* 11. évfolyam*/
WHEN id in (1314,1318,1326, 3017, 3021, 3022 /*??*/,
1319, 1322) THEN 1314 /* 12. évfolyam*/
ELSE null
END AS Evfolyam
FROM @Dictionary
where Tipus like 'EvfolyamTipus')Evfolyamok
where Evfolyam is not null
/*
INSERT INTO @EvfolyamokTMP
SELECT id, Evfolyam from (SELECT DISTINCT id, CASE
WHEN id in (1307,1330,1334) THEN 1307 /* 5. évfolyam*/
WHEN id in (1308) THEN 1308 /* 6. évfolyam*/
WHEN id in (1309,1331,1335) THEN 1309 /* 7. évfolyam*/
WHEN id in (1310,1324) THEN 1310 /* 8. évfolyam*/
WHEN id in (1311,1316,1332,1333,3018,3019,3020) THEN 1311 /* 9. évfolyam*/
WHEN id in (1312,1323) THEN 1312 /* 10. évfolyam*/
WHEN id in (1313, 1317, 1325,3016 ) THEN 1313 /* 11. évfolyam*/
WHEN id in (1314,1318,1326, 3017, 3021, 3022 /*??*/,
1319, 1322) THEN 1314 /* 12. évfolyam*/
ELSE null
END AS Evfolyam
FROM @Dictionary
where Tipus like 'EvfolyamTipus')Evfolyamok
where Evfolyam is not null
--Évfolyamok kiválasztásához szükséges (pl általánosnál csak 5-8. évfolyam jelenjen meg)
declare @also int=(
select count(distinct tcs.c_osztalycsoportid) from t_tanulocsoport tcs
inner join t_osztalycsoport ocs on ocs.id=tcs.C_OSZTALYCSOPORTID and ocs.C_EVFOLYAMTIPUSA in (1307, 1330, 1334, 1308, 1309, 1331, 1335, 1310, 1324) and ocs.C_FELADATELLATASIHELYID=@feladatEllatasiHelyId
inner join t_osztaly o on o.id=ocs.id
where tcs.C_TANEVID=@tanevId )
declare @felso int=(
select count(distinct tcs.c_osztalycsoportid) from t_tanulocsoport tcs
inner join t_osztalycsoport ocs on ocs.id=tcs.C_OSZTALYCSOPORTID
and ocs.C_EVFOLYAMTIPUSA in (1311, 1316, 1332, 1333, 3018, 3019, 3020, 1312, 1323, 1313, 1317, 1325, 3016, 1314, 1318, 1326, 3017, 3021, 3022, 1319, 1322 )
and ocs.C_FELADATELLATASIHELYID=@feladatEllatasiHelyId
inner join t_osztaly o on o.id=ocs.id
where tcs.C_TANEVID=@tanevId )
IF (@also>=@felso)
begin
insert into @Evfolyamok
select Id, Evfolyam from @EvfolyamokTMP where Evfolyam in(1307,1308,1309,1310)
end
ELSE
begin
insert into @Evfolyamok
select Id, Evfolyam from @EvfolyamokTMP where Evfolyam in(1311,1312,1313,1314)
end
*/
--Egy adott FH-hoz tartozó tanulók
insert into @FHhozTartozoTanulok
select distinct ocs.c_intezmenyid, ocs.C_FELADATELLATASIHELYID, evf.Evfolyam, tcs.C_TANULOID, f.C_NEME from t_osztalycsoport ocs
inner join t_tanulocsoport tcs on tcs.C_OSZTALYCSOPORTID=ocs.ID and tcs.TOROLT='F' and tcs.C_TANEVID=@tanevId
inner join T_FELHASZNALO f on f.id=tcs.c_tanuloid
inner join @Evfolyamok evf on evf.Id=ocs.C_EVFOLYAMTIPUSA
where ocs.C_FELADATELLATASIHELYID = @feladatEllatasiHelyId and ocs.C_TANEVID=@tanevId
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
insert into @OsszesitettTanulok
select distinct Tanulo from @TanuloErtekeles te
inner join @Dictionary d on d.id=te.Ertekeles
inner join @FHhozTartozoTanulok fht on fht.TanuloId=te.Tanulo
where te.Tipus=1519
group by Tanulo
having round(avg(convert(float, d.VALUE)),1)<@FelHelyTipusKozepes
declare @Osszes3atlagalattLany int=(select count(Tanulo) from (select Tanulo from @TanuloErtekeles te
inner join @Dictionary d on d.id=te.Ertekeles
inner join @FHhozTartozoTanulok fht on fht.TanuloId=te.Tanulo
where te.Tipus=1519 and fht.Neme=5
group by Tanulo
having round(avg(convert(float, d.VALUE)),1)<@FelHelyTipusKozepes)a)
insert into @tmpA03T01
select '5578', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], @Osszes3atlagalattLany, 1 Rendez
from (select TanuloId, Evfolyam from @FHhozTartozoTanulok fht
inner join (select round(avg(convert(float, d.VALUE)),1) Atlag, Tanulo from @TanuloErtekeles te
inner join @Dictionary d on d.id=te.Ertekeles
where te.Tanulo in (select Tanuloid from @FHhozTartozoTanulok ) and te.Tipus=1519 group by Tanulo
having round(avg(convert(float, d.VALUE)),1)<@FelHelyTipusKozepes) Atlag on Atlag.Tanulo=fht.TanuloId
union
select null, null
where (select top 1 TanuloId from @FHhozTartozoTanulok fht
inner join (select round(avg(convert(float, d.VALUE)),1) Atlag, Tanulo from @TanuloErtekeles te
inner join @Dictionary d on d.id=te.Ertekeles
where te.Tanulo in (select Tanuloid from @FHhozTartozoTanulok ) and te.Tipus=1519 group by Tanulo
having round(avg(convert(float, d.VALUE)),1)<@FelHelyTipusKozepes) Atlag on Atlag.Tanulo=fht.TanuloId) is null )a
pivot (count(TanuloId) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314]))pv
--1,1 mértékben romlott ?????????????????????????????
--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], @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]))pv
-- 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], @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]))piv
-- félév, sozrgalom, 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], @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]))piv
--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], @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]))piv
--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
where tm.c_tanevid=@tanevId
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
where tm.C_IGAZOLT='F' and tm.c_tanevid=@tanevId
group by fht.TanuloId
having count(Tanuloid)>50)a)
insert into @tmpA03T01
select '5583',*,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], @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
where tm.C_IGAZOLT='F' and tm.c_tanevid=@tanevId
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
where tm.C_IGAZOLT='F' and tm.c_tanevid=@tanevId
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]))piv
--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], @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]))piv
--Szülő kérésére folyamtban????
--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], @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]))piv
--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], @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]))piv
--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], @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]))piv
--legalább 2 feltétel teljesül
insert into @2feltetelTeljesulTanulok
select Tanulo from @OsszesitettTanulok group by Tanulo having count(Tanulo)>=2
declare @OsszesOsszeslanyMin2 int=(select count(Tanulo) from @2feltetelTeljesulTanulok kt
inner join @FHhozTartozoTanulok ft on ft.TanuloId=kt.Tanulo and ft.Neme=5)
insert into @tmpA03T01
select '5588', *, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], @OsszesOsszeslanyMin2, 11 Rendez from (select Tanulo, fht.Evfolyam from @2feltetelTeljesulTanulok kt
inner join @FHhozTartozoTanulok fht on fht.TanuloId=kt.Tanulo
union
select null,null
where (select top 1 Tanulo from @OsszesitettTanulok ot
inner join @FHhozTartozoTanulok fht on fht.TanuloId=ot.Tanulo)is null ) a
pivot (count (Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314]))piv
--Szum
declare @OsszesOsszesLany int= (select count(distinct Tanulo) from @OsszesitettTanulok ot
inner join @FHhozTartozoTanulok fh on fh.TanuloId=ot.Tanulo and fh.Neme=5)
insert into @tmpA03T01
select '5025', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], @OsszesOsszesLany, -1 Rendez from (select distinct Tanulo, Evfolyam from @OsszesitettTanulok ot
inner join @FHhozTartozoTanulok fh on fh.TanuloId=ot.Tanulo
union
select null, null
where (select top 1 Tanulo from @OsszesitettTanulok ot
inner join @FHhozTartozoTanulok fh on fh.TanuloId=ot.Tanulo ) is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314]))piv
--Szum lány
insert into @tmpA03T01
select '4952', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], null, 0 Rendez from (select distinct Tanulo, Evfolyam from @OsszesitettTanulok ot
inner join @FHhozTartozoTanulok fh on fh.TanuloId=ot.Tanulo and fh.Neme=5
union
select null, null where (select top 1 Tanulo from @OsszesitettTanulok ot
inner join @FHhozTartozoTanulok fh on fh.TanuloId=ot.Tanulo and fh.Neme=5) is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314]))piv
--kettő feltétel esetén ... félévben 100 órát elért hiányzás
declare @Osszes100IgazoltLany int = (select count(Tanulo) from (select distinct fht.Tanuloid Tanulo from T_TANULOMULASZTAS tm
inner join @2feltetelTeljesulTanulok kt on kt.Tanulo=tm.C_ORATANULOIID
inner join @FHhozTartozoTanulok fht on fht.TanuloId=kt.Tanulo and fht.Neme=5
inner join t_tanitasiora tao on tao.id=tm.C_TANITASIORAKID and tao.C_DATUM>@FelevKezdete and tao.C_DATUM<@FelevVege
where tm.C_IGAZOLT='T' and tm.c_tanevid=@tanevId
group by fht.TanuloId, fht.Evfolyam
having count(Tanuloid)>=100)a)
insert into @tmpA03T01
select '5589', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], @Osszes100IgazoltLany, 12 Rendez from (select distinct fht.Tanuloid Tanulo, fht.Evfolyam from T_TANULOMULASZTAS tm
inner join @2feltetelTeljesulTanulok kt on kt.Tanulo=tm.C_ORATANULOIID
inner join @FHhozTartozoTanulok fht on fht.TanuloId=kt.Tanulo
inner join t_tanitasiora tao on tao.id=tm.C_TANITASIORAKID and tao.C_DATUM>@FelevKezdete and tao.C_DATUM<@FelevVege
where tm.C_IGAZOLT='T' and tm.c_tanevid=@tanevId
group by fht.TanuloId, fht.Evfolyam
having count(Tanuloid)>=100
union
select null, null
where (select top 1 fht.Tanuloid Tanulo from T_TANULOMULASZTAS tm
inner join @2feltetelTeljesulTanulok kt on kt.Tanulo=tm.C_ORATANULOIID
inner join @FHhozTartozoTanulok fht on fht.TanuloId=kt.Tanulo
inner join t_tanitasiora tao on tao.id=tm.C_TANITASIORAKID and tao.C_DATUM>@FelevKezdete and tao.C_DATUM<@FelevVege
where tm.C_IGAZOLT='T' and tm.c_tanevid=@tanevId
group by fht.TanuloId, fht.Evfolyam
having count(Tanuloid)>=100) is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314]))piv
--kettő feltétel ... kiemelet fogyelmet igénylő --sni
declare @OsszesSni2feltetelLany int = (select count(Tanulo) from (select kt.Tanulo Tanulo from @2feltetelTeljesulTanulok kt
inner join t_tanulo t on t.ID=kt.Tanulo and t.C_SAJATOSNEVELESU='T'
inner join @FHhozTartozoTanulok fht on fht.TanuloId=kt.Tanulo and fht.Neme=5
)a)
insert into @tmpA03T01
select '5590', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], @OsszesSni2feltetelLany, 13 Rendez from (select kt.Tanulo, fht.Evfolyam from @2feltetelTeljesulTanulok kt
inner join t_tanulo t on t.ID=kt.Tanulo and t.C_SAJATOSNEVELESU='T'
inner join @FHhozTartozoTanulok fht on fht.TanuloId=kt.Tanulo
union
select null, null
where (select top 1 kt.Tanulo from @2feltetelTeljesulTanulok kt
inner join t_tanulo t on t.ID=kt.Tanulo and t.C_SAJATOSNEVELESU='T'
inner join @FHhozTartozoTanulok fht on fht.TanuloId=kt.Tanulo) is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314]))piv
--kettő feltétel ... kiemelet fogyelmet igénylő --rendszeres gyermekvédelmi
declare @OsszesRgyT2feltetelLany int = (select count(Tanulo) from (select kt.Tanulo Tanulo from @2feltetelTeljesulTanulok kt
inner join t_tanulo t on t.ID=kt.Tanulo and t.C_RENDSZERESGYERMEKVEDELMIKEDV is not null
inner join @FHhozTartozoTanulok fht on fht.TanuloId=kt.Tanulo and fht.Neme=5
)a)
insert into @tmpA03T01
select '5591', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], @OsszesRgyT2feltetelLany, 14 Rendez from (select kt.Tanulo, fht.Evfolyam from @2feltetelTeljesulTanulok kt
inner join t_tanulo t on t.ID=kt.Tanulo and t.C_RENDSZERESGYERMEKVEDELMIKEDV is not null
inner join @FHhozTartozoTanulok fht on fht.TanuloId=kt.Tanulo
union
select null, null
where (select top 1 kt.Tanulo from @2feltetelTeljesulTanulok kt
inner join t_tanulo t on t.ID=kt.Tanulo and t.C_RENDSZERESGYERMEKVEDELMIKEDV is not null
inner join @FHhozTartozoTanulok fht on fht.TanuloId=kt.Tanulo) is null)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314]))piv
--kettő feltétel ... alapfokú oktatásban 16
declare @OsszesAlapfoku16AlattLany int =(select count(fht.TanuloId) from @2feltetelTeljesulTanulok ketfeltetel
inner join @FHhozTartozoTanulok fht on fht.TanuloId=ketfeltetel.Tanulo and fht.Evfolyam in (1307,1308,1309,1310) and fht.Neme=5
inner join (select f.id Tanuloid,
case
WHEN DATEADD(YY, DATEDIFF(yy, f.C_SZULETESIDATUM, GETDATE()), f.C_SZULETESIDATUM) < GETDATE() THEN DATEDIFF(yy, f.C_SZULETESIDATUM, GETDATE())
ELSE DATEDIFF(yy, f.C_SZULETESIDATUM,GETDATE()) - 1
end as Eletkor from t_felhasznalo f
) szulido on szulido.TanuloId=ketfeltetel.Tanulo
where szulido.Eletkor>15)
insert into @tmpA03T01
select '5592', piv.*, [1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314], @OsszesAlapfoku16AlattLany, 14 Rendez from (select fht.TanuloId Tanulo, fht.Evfolyam Evfolyam from @2feltetelTeljesulTanulok ketfeltetel
inner join @FHhozTartozoTanulok fht on fht.TanuloId=ketfeltetel.Tanulo and fht.Evfolyam in (1307,1308,1309,1310)
inner join (select f.id Tanuloid,
case
WHEN DATEADD(YY, DATEDIFF(yy, f.C_SZULETESIDATUM, GETDATE()), f.C_SZULETESIDATUM) < GETDATE() THEN DATEDIFF(yy, f.C_SZULETESIDATUM, GETDATE())
ELSE DATEDIFF(yy, f.C_SZULETESIDATUM,GETDATE()) - 1
end as Eletkor from t_felhasznalo f
) szulido on szulido.TanuloId=ketfeltetel.Tanulo
where szulido.Eletkor>15
union
select null, null
where (select top 1 fht.TanuloId Tanulo from @2feltetelTeljesulTanulok ketfeltetel
inner join @FHhozTartozoTanulok fht on fht.TanuloId=ketfeltetel.Tanulo and fht.Evfolyam in (1307,1308,1309,1310)
inner join (select f.id Tanuloid,
case
WHEN DATEADD(YY, DATEDIFF(yy, f.C_SZULETESIDATUM, GETDATE()), f.C_SZULETESIDATUM) < GETDATE() THEN DATEDIFF(yy, f.C_SZULETESIDATUM, GETDATE())
ELSE DATEDIFF(yy, f.C_SZULETESIDATUM,GETDATE()) - 1
end as Eletkor from t_felhasznalo f
) szulido on szulido.TanuloId=ketfeltetel.Tanulo
where szulido.Eletkor>15) is null
)a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314]))piv
--középfokú oktatásban 16. életévének betöltését követően lépett be
/*
ELSE
begin
declare @OsszesKozepfoku16felett int = (
select count(Tanulo) from (
select tcs.c_tanuloid Tanulo, fht.Evfolyam,
case
WHEN DATEADD(YY, DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum)), f.C_SZULETESIDATUM) < min(tcs.c_belepesdatum) THEN DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum))
ELSE DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum)) - 1
end as Eletkor
from T_TANULOCSOPORT tcs
inner join @2feltetelTeljesulTanulok ketfeltetel on ketfeltetel.Tanulo=tcs.C_TANULOID
inner join t_osztaly o on o.id=tcs.c_osztalycsoportid
inner join t_felhasznalo f on f.id=tcs.C_TANULOID
inner join @FHhozTartozoTanulok fht on fht.TanuloId=ketfeltetel.Tanulo and fht.Evfolyam in (1311,1312,1313,1314)
where tcs.torolt='F'
group by tcs.c_tanuloid, fht.Evfolyam, f.C_SZULETESIDATUM)a
where Eletkor>=16
)
declare @OsszesKozepfoku16felettLany int = (
select count(Tanulo) from (
select tcs.c_tanuloid Tanulo, fht.Evfolyam,
case
WHEN DATEADD(YY, DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum)), f.C_SZULETESIDATUM) < min(tcs.c_belepesdatum) THEN DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum))
ELSE DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum)) - 1
end as Eletkor
from T_TANULOCSOPORT tcs
inner join @2feltetelTeljesulTanulok ketfeltetel on ketfeltetel.Tanulo=tcs.C_TANULOID
inner join t_osztaly o on o.id=tcs.c_osztalycsoportid
inner join t_felhasznalo f on f.id=tcs.C_TANULOID
inner join @FHhozTartozoTanulok fht on fht.TanuloId=ketfeltetel.Tanulo and fht.Evfolyam in (1311,1312,1313,1314) and fht.Neme=5
where tcs.torolt='F'
group by tcs.c_tanuloid, fht.Evfolyam, f.C_SZULETESIDATUM)a
where Eletkor>=16
)
insert into @tmpA03T01
select 'kozepfoku16utan', piv.*, @OsszesKozepfoku16felett, @OsszesKozepfoku16felettLany from (select Tanulo, Evfolyam from (
select tcs.c_tanuloid Tanulo, fht.Evfolyam,
case
WHEN DATEADD(YY, DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum)), f.C_SZULETESIDATUM) < min(tcs.c_belepesdatum) THEN DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum))
ELSE DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum)) - 1
end as Eletkor
from T_TANULOCSOPORT tcs
inner join @2feltetelTeljesulTanulok ketfeltetel on ketfeltetel.Tanulo=tcs.C_TANULOID
inner join t_osztaly o on o.id=tcs.c_osztalycsoportid
inner join t_felhasznalo f on f.id=tcs.C_TANULOID
inner join @FHhozTartozoTanulok fht on fht.TanuloId=ketfeltetel.Tanulo and fht.Evfolyam in (1311,1312,1313,1314)
where tcs.torolt='F'
group by tcs.c_tanuloid, fht.Evfolyam, f.C_SZULETESIDATUM)a
where Eletkor>=16
union
select null, null
where (select top 1 Tanulo from (
select tcs.c_tanuloid Tanulo, fht.Evfolyam,
case
WHEN DATEADD(YY, DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum)), f.C_SZULETESIDATUM) < min(tcs.c_belepesdatum) THEN DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum))
ELSE DATEDIFF(yy, f.C_SZULETESIDATUM, min(tcs.c_belepesdatum)) - 1
end as Eletkor
from T_TANULOCSOPORT tcs
inner join @2feltetelTeljesulTanulok ketfeltetel on ketfeltetel.Tanulo=tcs.C_TANULOID
inner join t_osztaly o on o.id=tcs.c_osztalycsoportid
inner join t_felhasznalo f on f.id=tcs.C_TANULOID
inner join @FHhozTartozoTanulok fht on fht.TanuloId=ketfeltetel.Tanulo and fht.Evfolyam in (1311,1312,1313,1314)
where tcs.torolt='F'
group by tcs.c_tanuloid, fht.Evfolyam, f.C_SZULETESIDATUM)a
where Eletkor>=16) is null )a
pivot (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314]))piv
end
*/
-- a03t01
select Id, [1307] 'Evfolyam5', [1308] 'Evfolyam6', [1309] 'Evfolyam7', [1310] 'Evfolyam8', [1311] 'Evfolyam9', [1312] 'Evfolyam10', [1313] 'Evfolyam11', [1314] 'Evfolyam12', Osszesen, Lany from @tmpA03T01
order by Rendez
END