230 lines
No EOL
13 KiB
Transact-SQL
230 lines
No EOL
13 KiB
Transact-SQL
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_napdatuma<getdate() and nn.c_orarendinap='T' and nn.torolt='F' and nn.c_intezmenyid=@intezmenyid and nn.c_tanevid=@tanevid)
|
|
|
|
select Tanulo IgazolatlanMulasztasokMiattElorelathatoanVeszelyeztetettTanulokSzama from
|
|
(select tm.c_oratanuloiid Tanulo, sum(fog.c_oraszam)/@hanyados Osszes from t_tanulomulasztas tm
|
|
inner join t_tanulo t on tm.c_oratanuloiid=t.id and t.c_magantanulo='F'
|
|
inner join t_tanitasiora tao on tao.id=tm.c_tanitasiorakid and tao.c_intezmenyid=@intezmenyid and tao.c_tanevid=@tanevid and tao.torolt='F'
|
|
inner join t_foglalkozas fog on fog.id=tao.c_foglalkozasid and fog.c_intezmenyid=@intezmenyid and fog.c_tanevid=@tanevid and fog.torolt='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) Osszes
|
|
where Osszes.Osszes>50
|
|
|
|
--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 |