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

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