SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[sp_ESLAdatgyujtes] @tanevId int, @intezmenyId int AS BEGIN SET NOCOUNT ON; --Tanulók száma select count(distinct tcs.c_tanuloid) as TanulokSzama from t_tanulocsoport tcs where tcs.torolt='F' and tcs.c_intezmenyid=@intezmenyid and tcs.c_tanevid=@tanevid --Tanév kezdete óta távozott tanulók száma declare @tanevkezdet date=(select c_datum from t_tanevrendje tr where c_naptipusa=1394 and c_tanevid=@tanevid and c_intezmenyid=@intezmenyid and torolt='F') select count(distinct tcs.c_tanuloid) TanevKezdeteOtaTavozottTanulokSzama from t_tanulocsoport tcs inner join t_osztaly o on o.id=tcs.c_osztalycsoportid and o.torolt='F' where tcs.c_kilepesdatum >=@tanevkezdet and tcs.torolt='F' and tcs.c_intezmenyid=@intezmenyid and tcs.c_tanevid=@tanevid --Tantárgyi átlag miatt veszélyeztetett tanulók száma select count(distinct Tanulo) TantargyiAtlagMiattVeszelyeztetettTanulokSzama from (select te.c_tanuloid Tanulo, te.c_tantargyid Tantargy, avg(convert(float, d.c_value)) as Atlag from t_tanuloertekeles te inner join (select distinct d.id, d.c_value from t_dictionaryitembase d) d on d.id=te.c_osztalyzat where te.torolt='F' and te.c_ertekelestipusa=1518 and te.c_intezmenyid=@intezmenyid and te.c_tanevid=@tanevid group by te.c_tanuloid, te.c_tantargyid) atlag where atlag.Atlag<3 --Félévi jegyek miatt veszélyeztetett tanulók száma declare @feleviVeszelyeztetett table (Tanulo int, Tantargy int) insert into @feleviVeszelyeztetett select distinct te.c_tanuloid as Tanulo, te.c_tantargyid as Tantargy from t_tanuloertekeles te inner join (select distinct d.id, d.c_value, d.c_name from t_dictionaryitembase d) d on d.id=te.c_osztalyzat where te.c_ertekelestipusa=1519 and d.c_value=1 and te.torolt='F' and te.c_intezmenyid=@intezmenyid and te.c_tanevid=@tanevid select count(Tanulo) FeleviJegyekMiattVeszelyeztetettTanulokSzama, Tantargy from (SELECT distinct Tanulo, STUFF((SELECT ', ' + CAST(t.c_nev AS VARCHAR(10)) [text()] FROM @feleviVeszelyeztetett inner join t_tantargy t on t.id=Tantargy FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,' ') Tantargy FROM @feleviVeszelyeztetett fv GROUP BY Tanulo) felevi group by Tantargy --Év végi jegyek miatt veszélyeztetett tanulók száma declare @evvegiVeszelyeztetett table (Tanulo int, Tantargy int) insert into @evvegiVeszelyeztetett select distinct te.c_tanuloid as Tanulo, te.c_tantargyid as Tantargy from t_tanuloertekeles te inner join (select d.id, d.c_value, d.c_name from t_dictionaryitembase d) d on d.id=te.c_osztalyzat where te.c_ertekelestipusa=1520 and d.c_value=1 and te.torolt='F' and te.c_intezmenyid=@intezmenyid and te.c_tanevid=@tanevid select count(Tanulo) EvVegiJegyekMiattVeszelyeztetettTanulokSzama, Tantargy from (SELECT distinct Tanulo, STUFF((SELECT ', ' + CAST(t.c_nev AS VARCHAR(10)) [text()] FROM @evvegiVeszelyeztetett inner join t_tantargy t on t.id=Tantargy FOR XML PATH(''), TYPE) .value('.','NVARCHAR(MAX)'),1,2,' ') Tantargy FROM @evvegiVeszelyeztetett ev GROUP BY Tanulo) evvegi group by Tantargy --Év végi romlás miatt veszélyeztetett tanulók száma declare @feleviatlag table (Tanulo int, Atlag float) insert into @feleviatlag select te.c_tanuloid as Tanulo, avg(convert(float, d.c_value)) Atlag from t_tanuloertekeles te inner join (select distinct d.id, d.c_value, d.c_name from t_dictionaryitembase d) d on d.id=te.c_osztalyzat where te.c_ertekelestipusa=1519 and te.torolt='F' and te.c_intezmenyid=@intezmenyid and te.c_tanevid=@tanevid group by te.c_tanuloid declare @evvegiatlag table (Tanulo int, Atlag float) insert into @evvegiatlag select te.c_tanuloid as Tanulo, avg(convert(float, d.c_value)) Atlag from t_tanuloertekeles te inner join (select distinct d.id, d.c_value, d.c_name from t_dictionaryitembase d) d on d.id=te.c_osztalyzat where te.c_ertekelestipusa=1520 and te.torolt='F' and te.c_intezmenyid=@intezmenyid and te.c_tanevid=@tanevid group by te.c_tanuloid select count(f.Tanulo) EvVegiRomlasMiattVeszelyeztetettTanulokSzama from @feleviatlag f inner join @evvegiatlag e on f.Tanulo=e.Tanulo where f.atlag-e.atlag>1.1 --Mulasztások miatt veszélyeztetett tanulók száma select Tanulo as MulasztasokMiattVeszelyeztetettTanulokSzama from (select tm.c_oratanuloiid Tanulo, count(tm.id) Mulasztas from t_tanulomulasztas tm where tm.torolt='F' and tm.c_intezmenyid=@intezmenyid and tm.c_tanevid=@tanevid group by tm.c_oratanuloiid)mul where Mulasztas>=100 --Tantárgyi mulasztások miatt veszélyeztetett tanulók száma declare @tanmulvesz table(Tanulo int, Foglalkozas int, Szamlalo float) insert into @tanmulvesz select tm.c_oratanuloiid as Tanulo, fog.id as Foglalkozas, count(tm.id)*fog.c_oraszam as Szamlalo from t_tanulomulasztas tm inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid and tao.torolt='F' and tao.c_intezmenyid=@intezmenyid and tao.c_tanevid=@tanevid inner join t_foglalkozas fog on fog.id=tao.c_foglalkozasid and fog.c_intezmenyid=@intezmenyid and fog.c_tanevid=@tanevid inner join t_tanulo t on t.id=tm.c_oratanuloiid and t.c_magantanulo='F' where tm.torolt='F' and tm.c_intezmenyid=@intezmenyid and tm.c_tanevid=@tanevid group by tm.c_oratanuloiid, fog.id, fog.c_oraszam select count(distinct Tanulo) TantargyiMulasztasokMiattVeszelyeztetettTanulokSzama from (select tmv.Tanulo, tmv.foglalkozas, Szamlalo Oraszam from @tanmulvesz tmv inner join t_foglalkozas fog on fog.id=tmv.Foglalkozas and fog.torolt='F')tmVeszelyeztetett where Oraszam>0.3*36*Oraszam --Tantárgyi mulasztások miatt előreláthatóan veszélyeztetett tanulók száma declare @foglalkozasok table (Id int, AktOraszam float, OsszOraszam float) insert into @foglalkozasok select tao.c_foglalkozasid Foglalkozas, sum(fog.c_oraszam) AktOraszam, fog.c_oraszam*36 from t_tanulomulasztas tm inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid and tao.torolt='F' and tao.c_intezmenyid=@intezmenyid and tao.c_tanevid=@tanevid inner join t_foglalkozas fog on fog.id=tao.c_foglalkozasid and fog.torolt='F' and fog.c_intezmenyid=@intezmenyid and fog.c_tanevid=@tanevid where tm.torolt='F' and tm.c_intezmenyid=@intezmenyid and tm.c_tanevid=@tanevid group by tao.c_foglalkozasid, fog.c_oraszam select count(tmv.Tanulo) TantargyiMulasztasokMiattElorelathatoanVeszelyeztetettTanulokSzama from @tanmulvesz tmv inner join @foglalkozasok fog on fog.Id=tmv.Foglalkozas where tmv.Szamlalo>fog.AktOraszam*0.3 --Igazolatlan mulasztások miatt veszélyeztetett tanulók száma select count(Tanulo) IgazolatlanMulasztasokMiattVeszelyeztetettTanulokSzama from (select tm.c_oratanuloiid Tanulo, count(tm.id) Igazolatlan from t_tanulomulasztas tm inner join t_tanulo t on tm.c_oratanuloiid=t.id and t.c_magantanulo='F' where tm.torolt='F' and tm.c_igazolt='F' and tm.c_intezmenyid=@intezmenyid and tm.c_tanevid=@tanevid group by tm.c_oratanuloiid) igazolatlan where Igazolatlan>50 --Igazolatlan mulasztások miatt előreláthatóan veszélyeztetett tanulók száma declare @hanyados float=(select convert(float, count(nn.id))/181 from t_naptarinap nn where nn.c_napdatuma50 --Alacsony magatartásértékelésű tanulók száma select count(distinct te.c_tanuloid) AlacsonyMagatartasertekelesuTanulokSzama from t_osztalyfonokiertekeles oe inner join t_tanuloertekeles te on te.id=oe.id and te.c_intezmenyid=@intezmenyid and te.c_tanevid=@tanevid and te.torolt='F' where oe.c_magatartas=1558 --Alacsony szorgalomértékelésű tanulók száma select count(distinct te.c_tanuloid) AlacsonySzorgalomertekelesuTanulokSzama from t_osztalyfonokiertekeles oe inner join t_tanuloertekeles te on te.id=oe.id and te.torolt='F' and te.c_intezmenyid=@intezmenyid and te.c_tanevid=@tanevid where oe.c_szorgalom=1558 and oe.torolt='F' --TANULÓK declare @tanulok table(Id int, Evismetlo nvarchar(1), MaganTanulo nvarchar(1), MaganTanulosagKezdete date, MenedekJoggalRendelkezo nvarchar(1), JogVSzunetelteto nvarchar(1), Allamigondozott nvarchar(1), Veszelyeztetett nvarchar(1), SajatosNevelesu nvarchar(1), BeilleszkedesiProblema nvarchar(1), MagatartasProblema nvarchar(1), TanulasiProblema nvarchar(1), HalmozottanFogyatekos nvarchar(1), RendszeresGyVK nvarchar(max), MaganTanulosagOka int, HatranyosH int ) insert into @tanulok select t.id as Id, t.c_evismetlo, t.c_magantanulo, t.c_magantanulosagkezdete, t.c_menedekjoggalrendelkezo, t.c_jogviszonyatszunetelteto, t.c_allamigondozott, t.c_veszelyeztetett, t.c_sajatosnevelesu, t.c_beilleszkedesiproblemavalkuz, t.c_magatartasiproblemavalkuzd, t.c_tanulasiproblemavalkuzd, c_halmozottanfogyatekos, t.c_rendszeresgyermekvedelmikedv, t.c_magantanulosaganakoka, c_hatranyoshelyzetu from t_tanulo t where t.torolt='F' and t.c_alintezmenyid=@intezmenyid --Évismétlő tanulók száma !!! select count(Id) EvismetloTanulokSzama from @tanulok where Evismetlo='T' --Magántanulók száma select count(Id) MagantanulokSzama from @tanulok where MaganTanulo='T' --Magántanulóvá vált tanulók száma declare @tanevKezdete date=(select distinct c_datum from t_tanevrendje tr where tr.c_naptipusa=1394) select count(Id) MagantanulovaValtTanulokSzama from @tanulok t where MaganTanulo='T' and MaganTanulosagKezdete>@tanevKezdete --Magántanulóvá vált tanulók száma saját döntés alapján select count(Id) MagantanulovaValtTanulokSzamaSajatDontesAlapjan from @tanulok t where MaganTanulo='T' and MaganTanulosagKezdete>@tanevKezdete and MaganTanulosagOka in (658,663,664) --Menedékjoggal rendelkező tanulók száma select count(Id) MenedekjoggalRendelkezoTanulokSzama from @tanulok t where MenedekJoggalRendelkezo='T' --Jogviszonyt szüneteltető tanulók száma select count(Id) JogviszonytSzuneteltetoTanulokSzama from @tanulok t where JogVSzunetelteto='T' --Intézeti, állami nevelt tanulók száma select count(Id) IntezetiAllamiNeveltTanulokSzama from @tanulok t where AllamiGondozott='T' --Veszélyeztetett tanulók száma select count(Id) VeszelyeztetettTanulokSzama from @tanulok t where Veszelyeztetett='T' --Sajátos nevelési igényű (SNI) tanulók száma select count(Id) SajatosNevelesiIgenyuSniTanulokSzama from @tanulok t where SajatosNevelesu='T' --Beilleszkedési nehézségekkel rendelkező tanulók száma select count(Id) BeilleszkedesiNehezsegekkelRendelkezoTanulokSzama from @tanulok t where BeilleszkedesiProblema='T' --Magatartási problémával küzdő tanulók száma select count(Id) MagatartasiProblemavalKuzdoTanulokSzama from @tanulok t where MagatartasProblema='T' --Tanulási problémával küzdő tanulók száma select count(Id) TanulasiProblemavalKuzdoTanulokSzama from @tanulok t where TanulasiProblema='T' --Hátrányos helyzetű tanulók száma select count(Id) HatranyosHelyzetuTanulokSzama from @tanulok t where HatranyosH=1122 --Halmozottan hátrányos helyzetű tanulók száma select count(Id) HalmozottanHatranyosHelyzetuTanulokSzama from @tanulok t where HalmozottanFogyatekos='T' --Rendszeres gyermekvédelmi kedvezményben részesülő tanulók száma select count(Id) RendszeresGyermekvedelmiKedvezmenybenReszesuloTanulokSzama from @tanulok t where RendszeresGyVK is not null --Alapfokú oktatásban résztvevő, tizenhatodik életévét betöltött tanulók száma select count(distinct tcs.c_tanuloid) AlapfokuOktatasbanResztvevoTizenhatodikEletevetBetoltottTanulokSzama from t_tanulocsoport tcs inner join t_osztalycsoport ocs on tcs.c_osztalycsoportid=ocs.id inner join t_osztaly o on o.id=ocs.id inner join t_feladatellatasihely fh on fh.id=ocs.c_feladatellatasihelyid and fh.c_oktatasinevelesifeladattipus=1158 inner join (select t.id Id, DATEDIFF(yy, f.c_szuletesidatum, @tanevKezdete) Eletkor from t_tanulo t inner join t_felhasznalo f on f.id=t.id) tanulo on tanulo.Id=tcs.c_tanuloid where tanulo.Eletkor>=16 and tcs.torolt='F' and tcs.c_intezmenyid=@intezmenyid and tcs.c_tanevid=@tanevid --A középfokú oktatásba tizenhatodik életévük betöltését követően belépett tanulók száma select count(distinct tcs.c_tanuloid) AKozepfokuOktatasbaTizenhatodikEletevukBetoltesetKovetoenBelepettTanulokSzama from t_tanulocsoport tcs inner join t_osztalycsoport ocs on tcs.c_osztalycsoportid=ocs.id inner join t_osztaly o on o.id=ocs.id inner join t_feladatellatasihely fh on fh.id=ocs.c_feladatellatasihelyid and fh.c_oktatasinevelesifeladattipus=1158 inner join (select t.id Id, DATEDIFF(yy, f.c_szuletesidatum, @tanevKezdete) Eletkor from t_tanulo t inner join t_felhasznalo f on f.id=t.id) tanulo on tanulo.Id=tcs.c_tanuloid where tanulo.Eletkor>=16 and tcs.torolt='F' and tcs.c_intezmenyid=@intezmenyid and tcs.c_tanevid=@tanevid End go