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

View file

@ -0,0 +1,89 @@
DROP FUNCTION IF EXISTS fnGetDokumentumTanulokAdatai
GO
CREATE FUNCTION fnGetDokumentumTanulokAdatai(@tanevId INT, @osztalyCsoportId INT)
RETURNS @tanuloAdatok TABLE (
TanuloId int
,TanuloCsoportId int
,Sorszam int
,TorzslapSzam varchar(1000)
,OktAzon nvarchar(40)
,TajSzam nvarchar(18)
,AnyjaNeve nvarchar(128)
,SzulHely nvarchar(100)
,SzulIdo nvarchar(20)--formázás miatt
,SocAdat nvarchar(200)
,Kepzes nvarchar(510)
,TanuloNeve nvarchar(510)
,Allampolgarsaga nvarchar(500)
,DiakIgazolvanySzam nvarchar(510)
,KilepesDatum nvarchar(20) --formázás miatt
,BeirasiNaploSorszam nvarchar(100)
,AktualisOsztaly nvarchar(200)
,AktualisOsztalyId int
,BelepesDatum nvarchar(20) --formázás miatt
)
AS BEGIN
DECLARE @tanugyiAdatok TABLE (TanuloId int,TanugyiId INT)
INSERT INTO @tanugyiAdatok (TanuloId,TanugyiId)
SELECT TanuloId,TanugyiAdatokId FROM fnGetOsztalyCsoportTanuloinakTanugyiAdatai (@osztalyCsoportId,default)
INSERT INTO @tanuloAdatok
SELECT DISTINCT
TanuloId
,TanuloCsoportId
,Sorszam
,TorzslapSzam
,OktAzon
,TajSzam
,AnyjaNeve
,SzulHely
,dbo.fnGetDokumentumDatumFormatum(szulIdo) SzulIdo
,SocAdat
,Kepzes
,TanuloNeve
,Allampolgarsaga
,DiakIgazolvanySzam
,dbo.fnGetDokumentumDatumFormatum(KilepesDatum) KilepesDatum
,BeirasiNaploSorszam
,AktualisOsztaly
,AktualisOsztalyId
,dbo.fnGetDokumentumDatumFormatum(BelepesDatum) BelepesDatum
FROM (
SELECT
OsztalyCsoportTanuloi.TanuloId AS TanuloId
,OsztalyCsoportTanuloi.TanuloCsoportId AS TanuloCsoportId
,tta.C_NAPLOSORSZAM AS Sorszam
,tta.C_TORZSLAPSZAM AS TorzslapSzam
,Felhasznalo.C_OKTATASIAZONOSITO AS OktAzon
,Felhasznalo.C_TAJSZAM AS TajSzam
,Felhasznalo.C_ANYJANEVE AS AnyjaNeve
,Felhasznalo.C_SZULETESIHELY AS SzulHely
,Felhasznalo.C_SZULETESIDATUM AS SzulIdo
,IIF(tta.C_MAGANTANULO = 'T', 'Magántanuló (' + ISNULL(MagantanulosagOka.C_NAME,'-') + ')', '') +
IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', ', Jogviszony szüneteltetve', '') +
IIF(tta.C_SZAKMAIGYAKORLATON = 'T', ', Szakmai gyakorlat', '') +
IIF(Tanulo.C_SZOCIALISTAMOGATAS = 'T', ', Szociális támogatás', '') +
IIF(tta.C_BEJARO = 'T', ', Bejáró', '') AS SocAdat
,Tanterv.C_NEV AS Kepzes
,Felhasznalo.C_NYOMTATASINEV AS TanuloNeve
,AllampolgarsagDic.C_NAME AS Allampolgarsaga
,Tanulo.C_DIAKIGAZOLVANYSZAM AS DiakIgazolvanySzam
,OsztalyCsoportTanuloi.KilepesDatum AS KilepesDatum
,tta.C_BEIRASINAPLOSORSZAM AS BeirasiNaploSorszam
,dbo.fnGetDokumentumTanuloAktualisOsztaly(OsztalyCsoportTanuloi.TanuloId) AS AktualisOsztaly /*TODO:Tobb Osztaly*//*OM-1653*/
,dbo.fnGetDokumentumTanuloAktualisOsztalyId(OsztalyCsoportTanuloi.TanuloId) AS AktualisOsztalyId
,OsztalyCsoportTanuloi.BelepesDatum AS BelepesDatum
FROM T_TANULO_OSSZES Tanulo
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') OsztalyCsoportTanuloi ON OsztalyCsoportTanuloi.TanuloId = Tanulo.ID
INNER JOIN T_TANTERV_OSSZES Tanterv ON Tanterv.ID = Tanulo.C_TANTERVID AND Tanterv.TOROLT='F'
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.ID = Tanulo.ID AND Felhasznalo.TOROLT='F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AllampolgarsagDic ON AllampolgarsagDic.ID = Felhasznalo.C_ALLAMPOLGARSAGA AND AllampolgarsagDic.C_TANEVID = Felhasznalo.C_TANEVID AND AllampolgarsagDic.TOROLT='F'
LEFT JOIN @tanugyiAdatok ta ON ta.TanuloId=Tanulo.ID
LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID=ta.TanugyiId AND tta.TOROLT='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MagantanulosagOka ON MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID AND MagantanulosagOka.C_TANEVID = Felhasznalo.C_TANEVID AND MagantanulosagOka.TOROLT='F'
WHERE Tanulo.TOROLT='F') tmp
RETURN
END

View file

@ -0,0 +1,177 @@
DROP FUNCTION IF EXISTS fnGetLemorzsolodottTanulokByFelhely
GO
-- A Funkció visszaadja a lemorzsolódás szempontjából releváns tanulók listáját az adott feladatellátási helyre, évfolymaonként és nemenként, valamint hogy
CREATE FUNCTION [dbo].[fnGetLemorzsolodottTanulokByFelhely] (@feladatEllatasiHelyId INT, @tanevId INT, @isFelevi INT)
RETURNS @retTable TABLE (
TanuloId int PRIMARY KEY,
Evfolyam int,
Neme int,
TanuloNev nvarchar(max),
OktatasiAzonosito nvarchar(max),
TanuloOsztalyNev nvarchar(255),
TanuloOsztalyId int,
IsKozepesMiatt int,
IsRontasMiatt int
)
BEGIN
-- Használt temporary táblák elkészítése
DECLARE @Evfolyamok TABLE
(Id INT, Evfolyam INT)
DECLARE @Osztalyzatok TABLE
(Id INT, Ertek FLOAT)
DECLARE @FHhozTartozoTanulok TABLE
(TanuloId INT, Evfolyam INT, Neme INT, TanuloNev nvarchar(max), OktatasiAzonosito nvarchar(max), TanuloOsztalyNev nvarchar(255), TanuloOsztalyId int)
DECLARE @TanuloAtlagok TABLE
(TanuloId INT, AktualisAtlag FLOAT, KorabbiAtlag FLOAT)
DECLARE @KozepesAlattiTanulok TABLE
(TanuloId INT)
DECLARE @RontottTanulok TABLE
(TanuloId INT)
DECLARE @MuvCsoportTip TABLE
(CsoptipID INT)
-- Mi a "Közepes" értéke az adott feladatellátási helyen
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 @MuvCsoportTip (CsoptipID)
VALUES (1071),(1070),(1069),(1068),(1067),(6756),(6757),(6758),(6759),(6760),(6761)
-- Az elõzõ tanév ID-ja
DECLARE @ElozoTanevId INT = 0
SELECT @ElozoTanevId = ISNULL(elozotanev.ID,0)
FROM T_TANEV_OSSZES akttanev
INNER JOIN T_TANEV_OSSZES elozotanev ON elozotanev.C_INTEZMENYID = akttanev.C_INTEZMENYID AND elozotanev.TOROLT = 'F'
WHERE akttanev.ID = @tanevId
AND
(
CAST(SUBSTRING(akttanev.C_NEV, 1, PATINDEX('%[^0-9]%', akttanev.C_NEV) - 1) AS INT)-
CAST(SUBSTRING(elozotanev.C_NEV, 1, PATINDEX('%[^0-9]%', elozotanev.C_NEV) - 1) AS INT) = 1
)
DECLARE @BesorolasiDatum DATE = (SELECT TOP 1 C_DATUM from T_TANEVRENDJE tr WHERE C_NAPTIPUSA = IIF(@isFelevi = 0,1395,1400) AND C_TANEVID = @tanevid AND TOROLT='F')
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,7109) THEN 1309 /* 7. évfolyam*/
WHEN ID IN (1310,1324,7110) THEN 1310 /* 8. évfolyam*/
WHEN ID IN (1311,1316,1332,1333,1336,3018,3019,3020,6702,7111, 7112, 7113, 7114, 7127, 7128)
THEN 1311 /* 9. évfolyam*/
WHEN ID IN (1312,1323,6703,7115, 7116, 7117, 7118) THEN 1312 /* 10. évfolyam*/
WHEN ID IN (1313,1317,1325,3016,6704,7119, 7120, 7121, 7122) THEN 1313 /* 11. évfolyam*/
WHEN id in (1314,1318,1326,3017,3021,3022,1322,6520,6705,6818,7123, 7124, 7125, 7126)
THEN 1314 /* 12. évfolyam*/
WHEN ID IN (6471,6472,6473,6475) THEN 6471 /* KH 1. évfolyam */
WHEN ID IN (6474,6476) THEN 6474 /* KH 2. évfolyam */
WHEN ID IN (6477,6479,6481) THEN 6477 /* SzH 1. évfolyam */
WHEN ID IN (6478,6480,6482) THEN 6478 /* SzH 2. évfolyam */
ELSE NULL
END AS Evfolyam
FROM T_DICTIONARYITEMBASE
WHERE C_TYPE = 'EvfolyamTipus' AND C_TANEVID = @tanevId) Evfolyamok
WHERE Evfolyam IS NOT NULL
INSERT INTO @Osztalyzatok
SELECT ID, CONVERT(FLOAT,C_VALUE)
FROM T_DICTIONARYITEMBASE
WHERE C_TYPE = 'OsztalyzatTipus' AND C_TANEVID = @tanevId
-- Egy adott FH-hoz tartozó tanulók kilistázása (évfolyamonként, nemenként)
INSERT INTO @FHhozTartozoTanulok /*TODO:Tobb Osztaly*//*OM-1582*/
SELECT DISTINCT
tcs.C_TANULOID,
evf.Evfolyam,
f.C_NEME,
f.C_NYOMTATASINEV,
f.C_OKTATASIAZONOSITO,
ocs.C_NEV,
ocs.ID
FROM T_OSZTALYCSOPORT ocs
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.TOROLT = 'F' AND tcs.C_TANEVID = @tanevId
AND tcs.C_BELEPESDATUM <= @BesorolasiDatum AND (tcs.C_KILEPESDATUM >= @BesorolasiDatum OR tcs.C_KILEPESDATUM IS NULL)
INNER JOIN T_OSZTALY o ON o.id = tcs.C_OSZTALYCSOPORTID AND o.C_KEPZESIFORMA = 1096
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
-- Visszatérési tábla számítása
INSERT INTO @KozepesAlattiTanulok (TanuloId)
SELECT DISTINCT
fht.TanuloId
FROM T_TANULOERTEKELES te
INNER JOIN T_TANTARGY tgy ON tgy.ID = te.C_TANTARGYID AND (tgy.C_FOTARGYE = 'T' OR tgy.C_ALTANTARGYKENTNYOMTATVANYBAN = 'T')
INNER JOIN @Osztalyzatok o ON o.ID = te.C_ERTEKELESOSZTALYZATID
INNER JOIN @FHhozTartozoTanulok fht ON fht.TanuloId = te.C_TANULOID
LEFT JOIN T_CSOPORT cs ON cs.ID=te.C_OSZTALYCSOPORTID --alapf. műv okt csoportok osztályzatai nem kellenek
WHERE te.C_TIPUSID = IIF(@isFelevi = 0,1520,1519) AND te.C_TANEVID = @tanevId AND ISNULL(cs.C_TIPUSA,0) NOT IN(SELECT CsoptipID FROM @MuvCsoportTip)
GROUP BY fht.TanuloId
HAVING ROUND(AVG(o.Ertek),2) < @FelHelyTipusKozepes
INSERT INTO @TanuloAtlagok (TanuloId, AktualisAtlag, KorabbiAtlag)
SELECT
fht.TanuloId,
(
SELECT ROUND(AVG(o.Ertek),2) FROM T_TANULOERTEKELES te
INNER JOIN @Osztalyzatok o ON o.ID = te.C_ERTEKELESOSZTALYZATID
LEFT JOIN T_CSOPORT cs ON cs.ID=te.C_OSZTALYCSOPORTID
WHERE te.C_TANULOID = tanulo.ID AND te.C_TIPUSID = IIF(@isFelevi = 0,1520,1519)
AND cs.C_TIPUSA NOT IN(SELECT CsoptipID FROM @MuvCsoportTip)
),
(
SELECT ROUND(AVG(o.Ertek),2) FROM T_TANULOERTEKELES_OSSZES te
INNER JOIN @Osztalyzatok o ON o.ID = te.C_ERTEKELESOSZTALYZATID
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID=te.C_OSZTALYCSOPORTID
WHERE te.C_TANULOID = extanulo.ID AND te.C_TIPUSID = IIF(@isFelevi = 0,1519,1520) AND te.TOROLT = 'F'
AND cs.C_TIPUSA NOT IN(SELECT CsoptipID FROM @MuvCsoportTip)
)
FROM
@FHhozTartozoTanulok fht
INNER JOIN T_FELHASZNALO tanulo ON tanulo.ID = fht.TanuloId
INNER JOIN T_FELHASZNALO_OSSZES extanulo ON tanulo.C_OKTATASIAZONOSITO = extanulo.C_OKTATASIAZONOSITO
AND extanulo.C_TANEVID = IIF(@isFelevi = 0,@tanevId,@ElozoTanevId) AND extanulo.TOROLT = 'F'
WHERE (
(@isFelevi = 1 AND tanulo.ID <> extanulo.ID)
OR
(@isFelevi = 0 AND tanulo.ID = extanulo.ID)
)
INSERT INTO @RontottTanulok (TanuloId)
SELECT DISTINCT
fht.TanuloId
FROM @FHhozTartozoTanulok fht
INNER JOIN @TanuloAtlagok ta ON ta.TanuloId = fht.TanuloId
WHERE (ta.AktualisAtlag+1.1) <= ta.KorabbiAtlag
INSERT INTO @retTable (TanuloId, Evfolyam, Neme, TanuloNev, OktatasiAzonosito, TanuloOsztalyNev, TanuloOsztalyId, IsKozepesMiatt, IsRontasMiatt)
SELECT
fht.TanuloId
,fht.Evfolyam
,fht.Neme
,fht.TanuloNev
,fht.OktatasiAzonosito
,fht.TanuloOsztalyNev
,fht.TanuloOsztalyId
,IIF(kozepes.TanuloId IS NULL, 0, 1)
,IIF(rontott.TanuloId IS NULL, 0, 1)
FROM @FHhozTartozoTanulok fht
LEFT JOIN @KozepesAlattiTanulok kozepes ON kozepes.TanuloId = fht.TanuloId
LEFT JOIN @RontottTanulok rontott ON rontott.TanuloId = fht.TanuloId
WHERE (kozepes.TanuloId IS NOT NULL OR rontott.TanuloId IS NOT NULL)
RETURN
END
GO

View file

@ -0,0 +1,624 @@
DROP PROCEDURE IF EXISTS sp_ExportEsl_A03T01_1
GO
CREATE PROCEDURE [dbo].[sp_ExportEsl_A03T01_1]
@tanevId INT,
@intezmenyId INT,
@feladatEllatasiHelyId INT,
@isFelevi INT = 0
AS
BEGIN
SET NOCOUNT ON;
--Táblák deklarálása
CREATE TABLE #tmpA03T01 (Leiras nvarchar(max), rn int, [1307] nvarchar(max), [1308] nvarchar(max), [1309] nvarchar(max), [1310] nvarchar(max), [1311] nvarchar(max), [1312] nvarchar(max), [1313] nvarchar(max), [1314] nvarchar(max), [6471] nvarchar(max), [6474] nvarchar(max), [6477] nvarchar(max), [6478] nvarchar(max), Osszesen int, Lany int, Rendez int)
CREATE TABLE #TanuloErtekeles (Id int, Tanulo int, Ertekeles int, Tipus int)
CREATE TABLE #FHhozTartozoTanulok (TanuloId int, Evfolyam int, Neme int, TanuloNev nvarchar(max), OktatasiAzonosito nvarchar(max), TanuloOsztalyNev nvarchar(255), TanuloOsztalyId int, IsKozepesMiatt int, IsRontasMiatt int)
CREATE TABLE #KetFeltetelTanulok (TanuloId int, Evfolyam int, Neme int, TanuloNev nvarchar(max), OktatasiAzonosito nvarchar(max), TanuloOsztalyNev nvarchar(255), IsHianyzasMiatt int, IsKiemeltMiatt int, IsGyermekVedelemMiatt int, IsAltalanosIskolaMiatt int)
DECLARE @16evesRefenceDate DATE
,@oktNevTip INT=(SELECT C_OKTATASINEVELESIFELADATTIPUS FROM T_FELADATELLATASIHELY WHERE ID=@feladatEllatasiHelyId)
IF @oktNevTip IN (1178,1158)
SELECT @16evesRefenceDate=DATEADD(YEAR,-16,IIF(@isFelevi=1,CAST(SUBSTRING(C_NEV,6,4)+'0210' as DATETIME),CAST(SUBSTRING(C_NEV,6,4)+'0630' as DATETIME)))
FROM T_TANEV WHERE ID = @tanevId
DECLARE @FelevKezdete DATETIME= (
SELECT C_DATUM + IIF(@isFelevi = 1, 0, 1)
FROM T_TANEVRENDJE_OSSZES tr
WHERE C_NAPTIPUSA = IIF(@isFelevi = 1, 1394, 1400)
AND C_TANEVID = @tanevid
AND C_INTEZMENYID = @intezmenyid
AND TOROLT = 'F'
)
DECLARE @FelevVege DATETIME= (
SELECT C_DATUM + 1
FROM T_TANEVRENDJE tr
WHERE C_NAPTIPUSA = IIF(@isFelevi = 1, 1400, 1395)
AND C_TANEVID=@tanevid
AND C_INTEZMENYID=@intezmenyid
AND TOROLT='F')
DECLARE @ertekelesTipus int=IIF(@isFelevi=1,1519,1520)
DECLARE @osszesDb int
INSERT INTO #FHhozTartozoTanulok (TanuloId, Evfolyam, Neme, TanuloNev, OktatasiAzonosito, TanuloOsztalyNev, TanuloOsztalyId, IsKozepesMiatt, IsRontasMiatt)
SELECT
tanulok.TanuloId
,tanulok.Evfolyam
,tanulok.Neme
,tanulok.TanuloNev
,tanulok.OktatasiAzonosito
,tanulok.TanuloOsztalyNev
,tanulok.TanuloOsztalyId
,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 AND te.C_TIPUSID=@ertekelesTipus
DECLARE @osszes INT = (select COUNT(*) FROM #FHhozTartozoTanulok)
DECLARE @osszesLany int=(select COUNT(*) FROM #FHhozTartozoTanulok WHERE Neme=5)
INSERT INTO #tmpA03T01
SELECT
'Osszesen'
,*
,ISNULL(@osszes,0)
,ISNULL(@osszesLany,0)
,-1 AS Rendez
FROM (
SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY Evfolyam ORDER BY TanuloNev) rn
,TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev Tanulo
,Evfolyam
FROM #FHhozTartozoTanulok a
) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
INSERT INTO #tmpA03T01
SELECT
'Lany'
,pvt.*
,ISNULL(@osszesLany, 0)
,ISNULL(@osszesLany, 0)
,0 AS Rendez
FROM (SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY Evfolyam ORDER BY TanuloNev) rn
,TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev Tanulo
,fh.Evfolyam
FROM #FHhozTartozoTanulok fh WHERE Neme=5) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
---
declare @Osszes3atlagalattLany int=(SELECT COUNT(1)
FROM #FHhozTartozoTanulok fht
WHERE fht.Neme=5
AND IsKozepesMiatt = 1)
SELECT @osszesDb=COUNT(*) FROM #FHhozTartozoTanulok fht
WHERE IsKozepesMiatt = 1
INSERT INTO #tmpA03T01
SELECT
'AFelevErtekelesenelMinositesenelATanuloEgyTizedesjegyigSzamitottTanulmanyiAtlagaAMagatartasEsSzorgalomErtekelesetMinositesetNemBeleszamitvaNemEriElKozepes3Szintet'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@Osszes3atlagalattLany, 0)
,1 AS Rendez
FROM ( SELECT DISTINCT ROW_NUMBER() OVER (PARTITION BY Evfolyam ORDER BY TanuloNev) rn
,TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev Tanulo
,fh.Evfolyam
FROM #FHhozTartozoTanulok fh WHERE IsKozepesMiatt = 1
) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
DECLARE @OsszesrontottLany int=(SELECT COUNT(1)
FROM #FHhozTartozoTanulok fht
WHERE fht.Neme=5
AND IsRontasMiatt = 1)
SELECT @osszesDb=COUNT(*) FROM #FHhozTartozoTanulok fht
WHERE IsRontasMiatt = 1
INSERT INTO #tmpA03T01
SELECT
'AzEvVegiJegyekAlapjanAFeleviJegyekhezKepestLegalabb11NyiAtlagotRontoTanulokSzama'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesrontottLany,0)
,2 AS Rendez
FROM (SELECT DISTINCT ROW_NUMBER() OVER (PARTITION BY Evfolyam ORDER BY TanuloNev) rn
,TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev Tanulo
,fh.Evfolyam
FROM #FHhozTartozoTanulok fh WHERE IsRontasMiatt = 1
) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))pvt
--
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 = @ertekelesTipus AND te.Ertekeles = 1501)
SELECT @osszesDb=COUNT(DISTINCT fht.TanuloId) FROM #TanuloErtekeles te
INNER JOIN #FHhozTartozoTanulok fht ON fht.TanuloId=te.Tanulo
WHERE te.Tipus = @ertekelesTipus AND te.Ertekeles = 1501
INSERT INTO #tmpA03T01
SELECT
'AFelevErtekelesenelMinositesenelATanuloEgyVagyTobbTantargybolElegtelen1OsztalyzatotKapott'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@ElegtelenFeleviLany,0)
,3 AS Rendez
FROM (SELECT
DISTINCT DENSE_RANK() OVER (PARTITION BY Evfolyam ORDER BY TanuloNev) rn
,TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev Tanulo
,fh.Evfolyam
FROM #TanuloErtekeles te
INNER JOIN #FHhozTartozoTanulok fh ON fh.TanuloId=te.Tanulo
WHERE te.Tipus = @ertekelesTipus AND te.Ertekeles = 1501) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
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 OR tanuloErtekeles.C_MAGATARTASOSZTALYZATID=1502)
AND fht.Neme=5)
SELECT @osszesDb=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 OR tanuloErtekeles.C_MAGATARTASOSZTALYZATID=1502)
INSERT INTO #tmpA03T01
SELECT
'AFelevMagatartasanakErtekelesenelMinositesenelATanuloRossz2ErtekelestKapott'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesFeleviRosszMagatartasLany,0)
,4 AS Rendez
FROM (SELECT
DISTINCT ROW_NUMBER() OVER (PARTITION BY Evfolyam ORDER BY TanuloNev) rn
,TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev Tanulo
,fh.Evfolyam
FROM #FHhozTartozoTanulok fh
INNER JOIN #TanuloErtekeles te ON te.Tanulo=fh.TanuloId
INNER JOIN T_TANULOERTEKELES tanuloErtekeles ON tanuloErtekeles.ID=te.ID
AND (tanuloErtekeles.C_MAGATARTASERTEKID=1558 OR tanuloErtekeles.C_MAGATARTASOSZTALYZATID=1502)) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
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 OR tanuloErtekeles.C_SZORGALOMOSZTALYZATID=1502)
AND fht.Neme=5)
SELECT @osszesDb=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 OR tanuloErtekeles.C_SZORGALOMOSZTALYZATID=1502)
INSERT INTO #tmpA03T01
SELECT
'AFelevSzorgalmanakErtekelesenelMinositesenelATanuloHanyag2ErtekelestKapott'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesFeleviRosszSzorgalomLany,0)
,5 AS Rendez
FROM (SELECT
DISTINCT ROW_NUMBER() OVER (PARTITION BY Evfolyam ORDER BY TanuloNev) rn
,TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev Tanulo
,fh.Evfolyam
FROM #FHhozTartozoTanulok fh
INNER JOIN #TanuloErtekeles te ON te.Tanulo = fh.TanuloId
INNER JOIN T_TANULOERTEKELES tanuloErtekeles ON tanuloErtekeles.ID=te.ID
AND (tanuloErtekeles.C_SZORGALOMERTEKID = 1562 OR tanuloErtekeles.C_SZORGALOMOSZTALYZATID=1502)) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
DECLARE @OsszesEvismetloTanuloLany int = (SELECT COUNT(fht.TanuloId)
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID=fht.TanuloId AND tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tcs.ID=tta.C_TANULOCSOPORTID AND tta.C_EVISMETLO='T'
WHERE fht.Neme=5)
SELECT @osszesDb=COUNT(fht.TanuloId) FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID=fht.TanuloId AND tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tcs.ID=tta.C_TANULOCSOPORTID AND tta.C_EVISMETLO='T'
INSERT INTO #tmpA03T01
SELECT
'AzAdottTanitasiEvbenEvismetlesreKotelezett'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesEvismetloTanuloLany,0)
,6 AS Rendez
FROM (SELECT
DISTINCT ROW_NUMBER() OVER (PARTITION BY Evfolyam ORDER BY TanuloNev) rn
,TanuloNev + ' - ' + OktatasiAzonosito + '; ' + TanuloOsztalyNev Tanulo
,fht.Evfolyam
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID=fht.TanuloId AND tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tcs.ID=tta.C_TANULOCSOPORTID AND tta.C_EVISMETLO='T'
) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
DECLARE @Osszes50fFelettiIgazolatlanLany int = (SELECT COUNT(Tanulo) FROM (
SELECT fht.TanuloId AS 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 >= @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
HAVING COUNT(Tanuloid) > 50) a)
SELECT @osszesDb=COUNT(Tanulo) FROM
(SELECT fht.TanuloId AS 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 >= @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
HAVING COUNT(Tanuloid) > 50) a
INSERT INTO #tmpA03T01
SELECT
'AFelevbenATanulo50OratMeghaladoHianyzassalRendelkezik'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@Osszes50fFelettiIgazolatlanLany,0)
,7 AS Rendez
FROM (SELECT
DISTINCT ROW_NUMBER() OVER (PARTITION BY fht.Evfolyam ORDER BY fht.TanuloNev) rn
,fht.TanuloNev + ' - ' + fht.OktatasiAzonosito + '; ' + fht.TanuloOsztalyNev Tanulo
,fht.Evfolyam Evfolyam
FROM
(SELECT
fht.Tanuloid AS Tanulo
,fht.TanuloNev
,fht.OktatasiAzonosito
,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, fht.TanuloNev, fht.OktatasiAzonosito
HAVING COUNT(Tanuloid) > 50) x
INNER JOIN #FHhozTartozoTanulok fht ON fht.TanuloId=x.Tanulo) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
DECLARE @OsszesSzuloMagantanuloLany int = (SELECT COUNT(fht.TanuloId)
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID=fht.TanuloId AND tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tcs.ID=tta.C_TANULOCSOPORTID AND tta.C_MAGANTANULOSAGANAKOKAID IN (663, 664)
WHERE fht.Neme=5
)
SELECT @osszesDb=COUNT(fht.TanuloId) FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID=fht.TanuloId AND tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tcs.ID=tta.C_TANULOCSOPORTID AND tta.C_MAGANTANULOSAGANAKOKAID IN (663, 664)
INSERT INTO #tmpA03T01
SELECT
'AFelevbenSzuloiKeresreMagantanulovaValtTanulo'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesSzuloMagantanuloLany,0)
,8 AS Rendez
FROM (SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY fht.Evfolyam ORDER BY fht.TanuloNev) rn
,fht.TanuloNev + ' - ' + fht.OktatasiAzonosito + '; ' + fht.TanuloOsztalyNev Tanulo
,fht.Evfolyam Evfolyam
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID=fht.TanuloId AND tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tcs.ID=tta.C_TANULOCSOPORTID AND tta.C_MAGANTANULOSAGANAKOKAID IN (663, 664)
) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
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)
SELECT @osszesDb=COUNT(fht.TanuloId) FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULO t ON t.C_MENEDEKJOGGALRENDELKEZO='T' AND fht.TanuloId=t.ID
INSERT INTO #tmpA03T01
SELECT
'AFelevbenMenekultOltalmazottMenedekesTanulokSzama'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesMenedekjoggalRendLany,0)
,9 AS Rendez
FROM (SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY fht.Evfolyam ORDER BY fht.TanuloNev) rn
,fht.TanuloNev + ' - ' + fht.OktatasiAzonosito + '; ' + fht.TanuloOsztalyNev Tanulo
,fht.Evfolyam Evfolyam
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULO t ON t.C_MENEDEKJOGGALRENDELKEZO='T' AND fht.TanuloId=t.ID) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
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)
SELECT @osszesDb=COUNT(fht.TanuloId) FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULO t on t.ID=fht.TanuloId AND t.C_VESZELYEZTETETT='T'
INSERT INTO #tmpA03T01
SELECT
'AFelevbenVeszelyezeztetteValtTanulokSzama'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesVeszelyeztettLany,0)
,10 AS Rendez
FROM (SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY fht.Evfolyam ORDER BY fht.TanuloNev) rn
,fht.TanuloNev + ' - ' + fht.OktatasiAzonosito + '; ' + fht.TanuloOsztalyNev Tanulo
,fht.Evfolyam Evfolyam
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULO t ON t.ID=fht.TanuloId AND t.C_VESZELYEZTETETT='T') a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
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)
SELECT @osszesDb=COUNT(fht.TanuloId) FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULO t ON t.C_ALLAMIGONDOZOTT='T' AND fht.TanuloId=t.ID
INSERT INTO #tmpA03T01
SELECT
'AFelevbenIdeiglenesHatallyalElhelyezettVagyNevelesbeVettTanulokSzama'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesAllamigondozottLany,0)
,11 AS Rendez
FROM (SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY fht.Evfolyam ORDER BY fht.TanuloNev) rn
,fht.TanuloNev + ' - ' + fht.OktatasiAzonosito + '; ' + fht.TanuloOsztalyNev Tanulo
,fht.Evfolyam Evfolyam
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULO t ON t.C_ALLAMIGONDOZOTT='T' AND fht.TanuloId=t.ID) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
INSERT INTO #KetFeltetelTanulok
SELECT DISTINCT
ftt.TanuloId
,ftt.Evfolyam
,ftt.Neme
,ftt.TanuloNev
,ftt.OktatasiAzonosito
,ftt.TanuloOsztalyNev
,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_TANULOCSOPORT tcs ON tcs.C_TANULOID=t.ID
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID=tcs.C_OSZTALYCSOPORTID
INNER JOIN T_FELADATELLATASIHELY fh ON fh.ID=ocs.C_FELADATELLATASIHELYID AND fh.C_OKTATASINEVELESIFELADATTIPUS IN (1158,1178)
AND fh.ID = @feladatEllatasiHelyId
WHERE t.ID = ftt.TanuloId
AND t.C_SZULETESIDATUM<=@16evesRefenceDate) > 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)
SELECT @osszesDb=COUNT(1) FROM #KetFeltetelTanulok
INSERT INTO #tmpA03T01
SELECT
'KettoFeltetelTelejesuleseEsetenLemorzsolodassalVeszelyeztetettTanulo'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesOsszeslanyMin2,0)
,12 AS Rendez
FROM (SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY kt.Evfolyam ORDER BY kt.TanuloNev) rn
,kt.TanuloNev + ' - ' + kt.OktatasiAzonosito + '; ' + kt.TanuloOsztalyNev Tanulo
,kt.Evfolyam Evfolyam
FROM #KetFeltetelTanulok kt) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478]))pvt
--
DECLARE @Osszes100IgazoltLany int = (SELECT COUNT(1)
FROM #KetFeltetelTanulok kt
WHERE kt.IsHianyzasMiatt = 1 AND kt.Neme = 5)
SELECT @osszesDb=COUNT(1) FROM #KetFeltetelTanulok kt WHERE kt.IsHianyzasMiatt = 1
INSERT INTO #tmpA03T01
SELECT
'EbbolAFelevben100OratEleroIgazoltHianyzassalRendelkezoTanulokSzama'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@Osszes100IgazoltLany,0)
,13 AS Rendez
FROM (SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY kt.Evfolyam ORDER BY kt.TanuloNev) rn
,kt.TanuloNev + ' - ' + kt.OktatasiAzonosito + '; ' + kt.TanuloOsztalyNev Tanulo
,kt.Evfolyam Evfolyam
FROM #KetFeltetelTanulok kt WHERE kt.IsHianyzasMiatt = 1) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
DECLARE @OsszesSni2feltetelLany int = (SELECT COUNT(1)
FROM #KetFeltetelTanulok kt
WHERE kt.IsKiemeltMiatt = 1 AND kt.Neme = 5)
SELECT @osszesDb=COUNT(1) FROM #KetFeltetelTanulok kt WHERE kt.IsKiemeltMiatt = 1
INSERT INTO #tmpA03T01
SELECT
'EbbolKiemeltFigyelmetIgenyloTanulokSzamaAKiemeltenTehetsegesTanulokKivetelevel'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesSni2feltetelLany,0)
,14 AS Rendez
FROM (SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY kt.Evfolyam ORDER BY kt.TanuloNev) rn
,kt.TanuloNev + ' - ' + kt.OktatasiAzonosito + '; ' + kt.TanuloOsztalyNev Tanulo
,kt.Evfolyam Evfolyam
FROM #KetFeltetelTanulok kt WHERE kt.IsKiemeltMiatt = 1) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
DECLARE @OsszesRgyT2feltetelLany int = (SELECT COUNT(1)
FROM #KetFeltetelTanulok kt
WHERE kt.IsGyermekVedelemMiatt = 1 AND kt.Neme = 5)
SELECT @osszesDb=COUNT(1) FROM #KetFeltetelTanulok kt WHERE kt.IsGyermekVedelemMiatt = 1
INSERT INTO #tmpA03T01
SELECT
'EbbolRendszeresGyermekvedelmiKedvezmenybenReszesuloTanulokSzama'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesRgyT2feltetelLany,0)
,15 AS Rendez
FROM (SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY kt.Evfolyam ORDER BY kt.TanuloNev) rn
,kt.TanuloNev + ' - ' + kt.OktatasiAzonosito + '; ' + kt.TanuloOsztalyNev Tanulo
,kt.Evfolyam Evfolyam
FROM #KetFeltetelTanulok kt
WHERE kt.IsGyermekVedelemMiatt = 1) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--
DECLARE @OsszesAlapfoku16AlattLany int = (SELECT COUNT(1)
FROM #KetFeltetelTanulok kt
WHERE kt.IsAltalanosIskolaMiatt = 1 AND kt.Neme = 5)
SELECT @osszesDb=COUNT(1) FROM #KetFeltetelTanulok kt WHERE kt.IsAltalanosIskolaMiatt = 1
INSERT INTO #tmpA03T01
SELECT
'EbbolAlapfokuOktatasbanBetoltotteA16Eletevet'
,pvt.*
,ISNULL(@osszesDb,0)
,ISNULL(@OsszesAlapfoku16AlattLany,0)
,16 AS Rendez
FROM (SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY kt.Evfolyam ORDER BY kt.TanuloNev) rn
,kt.TanuloNev + ' - ' + kt.OktatasiAzonosito + '; ' + kt.TanuloOsztalyNev Tanulo
,kt.Evfolyam Evfolyam
FROM #KetFeltetelTanulok kt
WHERE kt.IsAltalanosIskolaMiatt = 1) a
PIVOT (MIN(Tanulo) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) pvt
--üres adatok pótlása
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='Osszesen')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('Osszesen',-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='Lany')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('Lany',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AFelevErtekelesenelMinositesenelATanuloEgyTizedesjegyigSzamitottTanulmanyiAtlagaAMagatartasEsSzorgalomErtekelesetMinositesetNemBeleszamitvaNemEriElKozepes3Szintet')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AFelevErtekelesenelMinositesenelATanuloEgyTizedesjegyigSzamitottTanulmanyiAtlagaAMagatartasEsSzorgalomErtekelesetMinositesetNemBeleszamitvaNemEriElKozepes3Szintet',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AzEvVegiJegyekAlapjanAFeleviJegyekhezKepestLegalabb11NyiAtlagotRontoTanulokSzama')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AzEvVegiJegyekAlapjanAFeleviJegyekhezKepestLegalabb11NyiAtlagotRontoTanulokSzama',2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AFelevErtekelesenelMinositesenelATanuloEgyVagyTobbTantargybolElegtelen1OsztalyzatotKapott')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AFelevErtekelesenelMinositesenelATanuloEgyVagyTobbTantargybolElegtelen1OsztalyzatotKapott',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AFelevMagatartasanakErtekelesenelMinositesenelATanuloRossz2ErtekelestKapott')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AFelevMagatartasanakErtekelesenelMinositesenelATanuloRossz2ErtekelestKapott',4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AFelevSzorgalmanakErtekelesenelMinositesenelATanuloHanyag2ErtekelestKapott')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AFelevSzorgalmanakErtekelesenelMinositesenelATanuloHanyag2ErtekelestKapott',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AzAdottTanitasiEvbenEvismetlesreKotelezett')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AzAdottTanitasiEvbenEvismetlesreKotelezett',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AFelevbenATanulo50OratMeghaladoHianyzassalRendelkezik')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AFelevbenATanulo50OratMeghaladoHianyzassalRendelkezik',7,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AFelevbenSzuloiKeresreMagantanulovaValtTanulo')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AFelevbenSzuloiKeresreMagantanulovaValtTanulo',8,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AFelevbenMenekultOltalmazottMenedekesTanulokSzama')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AFelevbenMenekultOltalmazottMenedekesTanulokSzama',9,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AFelevbenVeszelyezeztetteValtTanulokSzama')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AFelevbenVeszelyezeztetteValtTanulokSzama',10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='AFelevbenIdeiglenesHatallyalElhelyezettVagyNevelesbeVettTanulokSzama')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('AFelevbenIdeiglenesHatallyalElhelyezettVagyNevelesbeVettTanulokSzama',11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='KettoFeltetelTelejesuleseEsetenLemorzsolodassalVeszelyeztetettTanulo')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('KettoFeltetelTelejesuleseEsetenLemorzsolodassalVeszelyeztetettTanulo',12,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='EbbolAFelevben100OratEleroIgazoltHianyzassalRendelkezoTanulokSzama')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('EbbolAFelevben100OratEleroIgazoltHianyzassalRendelkezoTanulokSzama',13,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='EbbolKiemeltFigyelmetIgenyloTanulokSzamaAKiemeltenTehetsegesTanulokKivetelevel')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('EbbolKiemeltFigyelmetIgenyloTanulokSzamaAKiemeltenTehetsegesTanulokKivetelevel',14,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='EbbolRendszeresGyermekvedelmiKedvezmenybenReszesuloTanulokSzama')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('EbbolRendszeresGyermekvedelmiKedvezmenybenReszesuloTanulokSzama',15,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
IF NOT EXISTS(SELECT 1 FROM #tmpA03T01 WHERE Leiras='EbbolAlapfokuOktatasbanBetoltotteA16Eletevet')
INSERT INTO #tmpA03T01(Leiras,Rendez,[1307],[1308],[1309],[1310],[1311],[1312],[1313],[1314],[6471],[6474],[6477],[6478],Osszesen,Lany)
VALUES('EbbolAlapfokuOktatasbanBetoltotteA16Eletevet',16,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0)
SELECT
Leiras
,[1307] AS [5. Évfolyam]
,[1308] AS [6. Évfolyam]
,[1309] AS [7. Évfolyam]
,[1310] AS [8. Évfolyam]
,[1311] AS [9. Évfolyam]
,[1312] AS [10. Évfolyam]
,[1313] AS [11. Évfolyam]
,[1314] AS [12. Évfolyam]
,[6471] AS [KH 1. Évfolyam]
,[6474] AS [KH 2. Évfolyam]
,[6477] AS [SZH 1. Évfolyam]
,[6478] AS [SZH 2. Évfolyam]
,Osszesen AS [Összesen]
,Lany AS [Lány]
FROM #tmpA03T01
ORDER BY Rendez,rn
END
GO

View file

@ -0,0 +1,640 @@
DROP PROCEDURE IF EXISTS sp_GetESL_A03T01_1
GO
CREATE PROCEDURE [dbo].[sp_GetESL_A03T01_1]
@tanevId INT,
@intezmenyId INT,
@feladatEllatasiHelyId INT,
@isFelevi INT = 0 /* 1 - előző tanév végi és féléves; 0 - félévtől év végi */
AS
BEGIN
SET NOCOUNT ON;
--Táblák deklarálása
CREATE TABLE #tmpA03T01 (Leiras nvarchar(max), [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)
CREATE TABLE #KetFeltetelTanulok (Evfolyam int, TanuloId int, Neme int, IsHianyzasMiatt int, IsKiemeltMiatt int, IsGyermekVedelemMiatt int, IsAltalanosIskolaMiatt int, INDEX IX_01 (TanuloId))
CREATE TABLE #FHhozTartozoTanulok (Evfolyam int, TanuloId int, Neme int, IsKozepesMiatt int, IsRontasMiatt int, INDEX IX_01 (TanuloId), TanuloOsztalyId int)
CREATE TABLE #TanuloErtekeles (Id int, Tanulo int, Ertekeles int, Tipus int, INDEX IX_01 (Tanulo))
DECLARE @16evesRefenceDate DATE
,@oktNevTip INT=(SELECT C_OKTATASINEVELESIFELADATTIPUS FROM T_FELADATELLATASIHELY WHERE ID=@feladatEllatasiHelyId)
IF @oktNevTip IN (1178,1158)
SELECT @16evesRefenceDate=DATEADD(YEAR,-16,IIF(@isFelevi=1,CAST(SUBSTRING(C_NEV,6,4)+'0210' as DATETIME),CAST(SUBSTRING(C_NEV,6,4)+'0630' as DATETIME)))
FROM T_TANEV WHERE ID = @tanevId
--Dátumok deklarásása
DECLARE
@FelevKezdete date
,@FelevVege date
,@ertekelesTipus int
SET @ertekelesTipus = IIF(@isFelevi = 1, 1519, 1520) /* féléves vagy év végi jegy */
SET @FelevKezdete = (
SELECT C_DATUM + IIF(@isFelevi = 1, 0, 1)
FROM T_TANEVRENDJE_OSSZES tr
WHERE C_NAPTIPUSA = IIF(@isFelevi = 1, 1394, 1400)
AND C_TANEVID = @tanevid
AND C_INTEZMENYID = @intezmenyid
AND TOROLT = 'F'
)
SET @FelevVege = (
SELECT C_DATUM + 1
FROM T_TANEVRENDJE tr
WHERE C_NAPTIPUSA = IIF(@isFelevi = 1, 1400, 1395)
AND C_TANEVID=@tanevid
AND C_INTEZMENYID=@intezmenyid
AND TOROLT='F')
INSERT INTO #FHhozTartozoTanulok (TanuloId, Evfolyam, Neme, IsKozepesMiatt, IsRontasMiatt, TanuloOsztalyId)
SELECT
tanulok.TanuloId
,tanulok.Evfolyam
,tanulok.Neme
,tanulok.IsKozepesMiatt
,tanulok.IsRontasMiatt
,tanulok.TanuloOsztalyId
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 AND te.C_TIPUSID=@ertekelesTipus
/* !!! 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
'Osszesen'
,piv.*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,ISNULL(@OsszesOsszesLany, 0)
,-1 AS Rendez
FROM (SELECT DISTINCT
TanuloId
,Evfolyam
FROM #FHhozTartozoTanulok
UNION ALL
SELECT NULL, NULL) 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
'Lany'
,piv.*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,ISNULL(@OsszesOsszesLany, 0)
,0 AS Rendez
FROM (SELECT DISTINCT
TanuloId
,Evfolyam
FROM #FHhozTartozoTanulok fh
WHERE fh.Neme = 5
UNION ALL
SELECT NULL, NULL) 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
'AFelevErtekelesenelMinositesenelATanuloEgyTizedesjegyigSzamitottTanulmanyiAtlagaAMagatartasEsSzorgalomErtekelesetMinositesetNemBeleszamitvaNemEriElKozepes3Szintet'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,ISNULL(@Osszes3atlagalattLany, 0)
,1 AS Rendez
FROM (SELECT
TanuloId
,Evfolyam
FROM #FHhozTartozoTanulok fht
WHERE IsKozepesMiatt = 1
UNION ALL
SELECT NULL, NULL) 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
'AzEvVegiJegyekAlapjanAFeleviJegyekhezKepestLegalabb11NyiAtlagotRontoTanulokSzama'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@OsszesrontottLany
,1 AS Rendez
FROM (SELECT
TanuloId
,Evfolyam
FROM #FHhozTartozoTanulok fht
WHERE IsRontasMiatt = 1
UNION ALL
SELECT NULL, NULL) 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
----------------------------------------------------------------------
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 = @ertekelesTipus
AND te.Ertekeles = 1501)
INSERT INTO #tmpA03T01
SELECT
'AFelevErtekelesenelMinositesenelATanuloEgyVagyTobbTantargybolElegtelen1OsztalyzatotKapott'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@ElegtelenFeleviLany
,2 AS Rendez
FROM (SELECT DISTINCT
fht.TanuloId
,fht.Evfolyam
FROM #TanuloErtekeles te
INNER JOIN #FHhozTartozoTanulok fht ON fht.TanuloId=te.Tanulo
WHERE te.Tipus = @ertekelesTipus
AND te.Ertekeles = 1501
UNION ALL
SELECT NULL, 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
----------------------------------------------------------------------
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 OR tanuloErtekeles.C_MAGATARTASOSZTALYZATID=1502) AND tanuloErtekeles.C_TIPUSID = @ertekelesTipus
AND fht.Neme=5)
INSERT INTO #tmpA03T01
SELECT
'AFelevMagatartasanakErtekelesenelMinositesenelATanuloRossz2ErtekelestKapott'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@OsszesFeleviRosszMagatartasLany
,3 AS Rendez
FROM (SELECT
fht.TanuloId AS Tanulo
,fht.Evfolyam AS 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 OR tanuloErtekeles.C_MAGATARTASOSZTALYZATID=1502) AND tanuloErtekeles.C_TIPUSID = @ertekelesTipus
UNION ALL
SELECT NULL, 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
----------------------------------------------------------------------
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 OR tanuloErtekeles.C_SZORGALOMOSZTALYZATID=1502)
AND fht.Neme=5)
INSERT INTO #tmpA03T01
SELECT
'AFelevSzorgalmanakErtekelesenelMinositesenelATanuloHanyag2ErtekelestKapott'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@OsszesFeleviRosszSzorgalomLany
,4 AS 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 OR tanuloErtekeles.C_SZORGALOMOSZTALYZATID=1502) AND tanuloErtekeles.C_TIPUSID = @ertekelesTipus
UNION ALL
SELECT NULL, 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
----------------------------------------------------------------------
DECLARE @OsszesEvismetloTanuloLany int = (SELECT COUNT(fht.TanuloId)
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId AND tcs.C_TANULOID=fht.TanuloId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID=tcs.ID AND tta.C_EVISMETLO='T'
WHERE fht.Neme=5
)
INSERT INTO #tmpA03T01
SELECT
'AzAdottTanitasiEvbenEvismetlesreKotelezett'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@OsszesEvismetloTanuloLany
,5 AS Rendez
FROM (SELECT
fht.TanuloId AS Tanulo
,fht.Evfolyam AS Evfolyam
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId AND tcs.C_TANULOID=fht.TanuloId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID=tcs.ID AND tta.C_EVISMETLO='T'
UNION ALL
SELECT NULL, 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
----------------------------------------------------------------------
DECLARE @Osszes50fFelettiIgazolatlanLany int = (SELECT COUNT(Tanulo) FROM (
SELECT fht.Tanuloid AS 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 >= @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
HAVING COUNT(Tanuloid) > 50) a)
INSERT INTO #tmpA03T01
SELECT
'AFelevbenATanulo50OratMeghaladoHianyzassalRendelkezik'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
, @Osszes50fFelettiIgazolatlanLany
, 6 AS Rendez
FROM (SELECT Tanulo, Evfolyam
FROM (SELECT
fht.Tanuloid AS 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 ALL
SELECT NULL, 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ó
----------------------------------------------------------------------
DECLARE @OsszesSzuloMagantanuloLany int = (SELECT COUNT(fht.TanuloId)
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId AND tcs.C_TANULOID=fht.TanuloId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID=tcs.ID AND tta.C_MAGANTANULOSAGANAKOKAID IN (663, 664)
WHERE fht.Neme=5
)
INSERT INTO #tmpA03T01
SELECT
'AFelevbenSzuloiKeresreMagantanulovaValtTanulo'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@OsszesSzuloMagantanuloLany
,7 AS Rendez
FROM (SELECT
fht.TanuloId AS Tanulo
,fht.Evfolyam AS Evfolyam
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID=fht.TanuloOsztalyId AND tcs.C_TANULOID=fht.TanuloId
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID=tcs.ID AND tta.C_MAGANTANULOSAGANAKOKAID IN (663, 664)
UNION ALL
SELECT NULL, 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ő
----------------------------------------------------------------------
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
'AFelevbenMenekultOltalmazottMenedekesTanulokSzama'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@OsszesMenedekjoggalRendLany
,8 AS Rendez
FROM (SELECT
fht.TanuloId AS Tanulo
,fht.Evfolyam AS Evfolyam
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULO t ON t.C_MENEDEKJOGGALRENDELKEZO='T'
AND fht.TanuloId=t.ID
UNION ALL
SELECT NULL, 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
----------------------------------------------------------------------
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
'AFelevbenVeszelyezeztetteValtTanulokSzama'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@OsszesVeszelyeztettLany
,9 AS Rendez
FROM (SELECT
TanuloId
,Evfolyam
FROM #FHhozTartozoTanulok fht
INNER JOIN T_TANULO t ON t.ID=fht.TanuloId
AND t.C_VESZELYEZTETETT='T'
UNION ALL
SELECT NULL, 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
----------------------------------------------------------------------
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
'AFelevbenIdeiglenesHatallyalElhelyezettVagyNevelesbeVettTanulokSzama'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@OsszesAllamigondozottLany
,10 AS 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 ALL
SELECT NULL, 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 DISTINCT
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_TANULOCSOPORT tcs ON tcs.C_TANULOID=t.ID
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID=tcs.C_OSZTALYCSOPORTID
INNER JOIN T_FELADATELLATASIHELY fh ON fh.ID=ocs.C_FELADATELLATASIHELYID AND fh.C_OKTATASINEVELESIFELADATTIPUS IN (1158,1178)
AND fh.ID = @feladatEllatasiHelyId
WHERE t.ID = ftt.TanuloId
AND t.C_SZULETESIDATUM<=@16evesRefenceDate) > 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
'KettoFeltetelTelejesuleseEsetenLemorzsolodassalVeszelyeztetettTanulo'
,*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@OsszesOsszeslanyMin2
,13 AS Rendez
FROM (SELECT
kt.TanuloId
,kt.Evfolyam
FROM #KetFeltetelTanulok kt
UNION ALL
SELECT NULL, NULL) 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 igazolt hiányzás
----------------------------------------------------------------------
DECLARE @Osszes100IgazoltLany int = (SELECT COUNT(1)
FROM #KetFeltetelTanulok kt
WHERE kt.IsHianyzasMiatt = 1
AND kt.Neme = 5)
INSERT INTO #tmpA03T01
SELECT
'EbbolAFelevben100OratEleroIgazoltHianyzassalRendelkezoTanulokSzama'
,piv.*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@Osszes100IgazoltLany
,14 AS Rendez
FROM (SELECT DISTINCT
kt.Tanuloid
,kt.Evfolyam
FROM #KetFeltetelTanulok kt
WHERE kt.IsHianyzasMiatt = 1
UNION ALL
SELECT NULL, NULL) 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 figyelmet igénylő --sni, btmn, hh, 3h
----------------------------------------------------------------------
DECLARE @OsszesSni2feltetelLany int = (SELECT COUNT(1)
FROM #KetFeltetelTanulok kt
WHERE kt.IsKiemeltMiatt = 1
AND kt.Neme = 5)
INSERT INTO #tmpA03T01
SELECT
'EbbolKiemeltFigyelmetIgenyloTanulokSzamaAKiemeltenTehetsegesTanulokKivetelevel'
,piv.*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]+[6471]+[6474]+[6477]+[6478]
,@OsszesSni2feltetelLany
,15 AS Rendez
FROM (SELECT
kt.TanuloId
,kt.Evfolyam
FROM #KetFeltetelTanulok kt
WHERE kt.IsKiemeltMiatt = 1
UNION ALL
SELECT NULL, NULL)a
PIVOT (COUNT(TanuloId) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) piv
----------------------------------------------------------------------
-- 16
----------------------------------------------------------------------
--kettő feltétel ... --rendszeres gyermekvédelmi támogatás
----------------------------------------------------------------------
DECLARE @OsszesRgyT2feltetelLany int = (SELECT COUNT(1)
FROM #KetFeltetelTanulok kt
WHERE kt.IsGyermekVedelemMiatt = 1
AND kt.Neme = 5)
INSERT INTO #tmpA03T01
SELECT
'EbbolRendszeresGyermekvedelmiKedvezmenybenReszesuloTanulokSzama'
,piv.*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]
,@OsszesRgyT2feltetelLany
,16 AS Rendez
FROM (SELECT
kt.TanuloId
,kt.Evfolyam
FROM #KetFeltetelTanulok kt
WHERE kt.IsGyermekVedelemMiatt = 1
UNION ALL
SELECT NULL, NULL) 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
'EbbolAlapfokuOktatasbanBetoltotteA16Eletevet'
,piv.*
,[1307]+[1308]+[1309]+[1310]+[1311]+[1312]+[1313]+[1314]
,@OsszesAlapfoku16AlattLany
,17 AS Rendez
FROM (SELECT
kt.TanuloId
,kt.Evfolyam AS Evfolyam
FROM #KetFeltetelTanulok kt
WHERE kt.IsAltalanosIskolaMiatt = 1
UNION ALL
SELECT NULL, NULL) a
PIVOT (COUNT(TanuloId) FOR Evfolyam IN ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) piv
-- a03t01
SELECT
Leiras
,[1307] AS Evfolyam5
,[1308] AS Evfolyam6
,[1309] AS Evfolyam7
,[1310] AS Evfolyam8
,[1311] AS Evfolyam9
,[1312] AS Evfolyam10
,[1313] AS Evfolyam11
,[1314] AS Evfolyam12
,[6471] AS KH1
,[6474] AS KH2
,[6477] AS SzH1
,[6478] AS SzH2
,Osszesen
,Lany
FROM #tmpA03T01
ORDER BY Rendez
END
GO

View file

@ -0,0 +1,451 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetNapkozisNaplo]
GO
CREATE PROCEDURE [dbo].[sp_GetNapkozisNaplo]
@tanevId INT
,@intezmenyId INT
,@csoportId INT
,@iskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
--Tanulók adatai, elérhetőségei
CREATE TABLE #tanulok (
Id int, TanuloCsoportId INT, Nev nvarchar(max), Osztaly nvarchar(max), OsztalyId INT, Sorszam nvarchar(max), beirasiSorszam nvarchar(max), Torzslapszam nvarchar(max), Allampolgarsaga nvarchar(max), DiakIg nvarchar(max),
SzulHely nvarchar(max), SzulIdo nvarchar(max), Anyja nvarchar(max), Taj nvarchar(max), OktAzon nvarchar(max), Kilepes nvarchar(max), Kepzes nvarchar(max),
TanuloCimTipus nvarchar(max), TanuloCim nvarchar(max), TanuloEmail nvarchar(max), szoc nvarchar(max)
)
CREATE TABLE #TanugyiAdatok (TanuloId int,TanugyiAdatId int)
INSERT INTO #TanugyiAdatok (TanuloId,TanugyiAdatId)
SELECT
TanuloId
,TanugyiAdatokId
FROM fnGetOsztalyCsoportTanuloinakTanugyiAdatai(@csoportId,default)
INSERT INTO #tanulok
SELECT DISTINCT
tanulok.TanuloId Id
,tanulok.TanuloCsoportId
,iif(KilepesDatum IS NOT NULL,f.C_NYOMTATASINEV+' (kilépett)', f.C_NYOMTATASINEV) as Nev
,dbo.fnGetDokumentumTanuloAktualisOsztaly(t.Id) as Osztaly /*TODO:Tobb Osztaly*//*OM-1651*/
,dbo.fnGetDokumentumTanuloAktualisOsztalyId(t.Id) as OsztalyId
,tta.C_NAPLOSORSZAM as NaploSorszam
,tta.C_BEIRASINAPLOSORSZAM as beirasiSorszam
,tta.C_TORZSLAPSZAM as TorzsLapSzam
,Allampolgarsaga.C_NAME as Allampolgarsag
,t.C_DIAKIGAZOLVANYSZAM as DiakIg
,f.C_SZULETESIHELY as SzulHely
,FORMAT(f.c_szuletesidatum, 'yyyy.MM.dd.') as SzulIdo
,f.C_ANYJANEVE as Anyja
,f.C_TAJSZAM as Taj
,f.C_OKTATASIAZONOSITO as OktAzon
,FORMAT(KilepesDatum, 'yyyy.MM.dd.') as Kilepes
,tt.c_nev as Kepzes
,cim.Tipus
,cim.cim
,email.c_emailcim as TanuloEmail
,IIF(tta.C_MAGANTANULO = 'T', 'Magántanuló (' + ISNULL(MagantanulosagOka.C_NAME,'-') + ')', '') +
IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', ', Jogviszony szüneteltetve', '') +
IIF(tta.C_SZAKMAIGYAKORLATON = 'T', ', Szakmai gyakorlat', '') +
IIF(t.C_SZOCIALISTAMOGATAS = 'T', ', Szociális támogatás', '') AS szoc
FROM fnGetDokumentumOsztalyokCsoportokTanuloi (@tanevId, @csoportId, 'T') tanulok
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.TanuloId AND f.torolt='F'
INNER JOIN T_TANULO_OSSZES t ON t.ID = f.ID
INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = t.C_TANTERVID AND tt.TOROLT = 'F' AND tt.C_TANEVID = @tanevId
INNER JOIN #TanugyiAdatok ta ON ta.TanuloId=t.ID
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID=ta.TanugyiAdatId AND tta.TOROLT='F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES Allampolgarsaga ON Allampolgarsaga.Id = f.c_allampolgarsaga AND Allampolgarsaga.C_TANEVID = @tanevId AND Allampolgarsaga.TOROLT = 'F'
LEFT JOIN (
SELECT DISTINCT
TanuloId TanuloId
,cimTipusa.C_NAME Tipus
,STUFF((
SELECT DISTINCT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @tanevId, @csoportid) btemp
WHERE
temp.TanuloId = btemp.TanuloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Cim
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @tanevId, @csoportid) temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa AND cimTipusa.C_TANEVID = @tanevId AND cimTipusa.TOROLT = 'F'
WHERE temp.CimTipusa = 907
)cim ON cim.TanuloId=tanulok.TanuloId
LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid=f.id AND tel.c_gondviseloid is null AND tel.torolt='F' AND tel.c_alapertelmezett='T'
LEFT JOIN T_EMAIL_OSSZES email ON email.c_felhasznaloid=tanulok.TanuloId AND email.c_gondviseloid is null AND email.torolt='F' AND email.c_alapertelmezett='T'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MagantanulosagOka on MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID AND MagantanulosagOka.C_TANEVID = f.C_TANEVID AND MagantanulosagOka.TOROLT = 'F'
--Kezdőoldal
SELECT ia.c_nev as IntezmenyNev, dbo.fnGetDokumentumIntezmenyCime(@tanevId) as IntezmenyCim, ia.c_omkod as OMKOD, ia.c_igazgatoneve as IntezmenyVezeto, ocs.c_nev NapkozisCsoport, iif(len(ocs.c_nev)>17, SUBSTRING (ocs.c_nev, 1 , 17)+'...', ocs.c_nev) RovidNev,
isnull(f.c_nyomtatasinev,'-') as CsoportVezeto, isnull(cs.c_csoportnaploleiras,'-') as CsoportNaploLeiras, FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy.MM.dd.') as Megnyitas,
isnull(FORMAT(cs.c_csoportnaplozarasa, 'yyyy.MM.dd.'),'-') as Lezaras
,ocs.ID NapkozisCsoportId
,f.ID CsoportVezetoId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,cs.C_TIPUSA CsoportTipusa
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.c_intezmenyid = i.id
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.c_intezmenyid=i.id AND ocs.c_tanevid = @tanevid AND ocs.id = @csoportId
INNER JOIN T_CSOPORT_OSSZES cs ON cs.id = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid
WHERE i.id = @intezmenyid
AND ia.c_tanevid = @tanevid
--Csoportot vezette
SELECT isnull(f.c_nyomtatasinev,'-') as CsoportVezeto FROM T_CSOPORT_OSSZES cs
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=cs.c_csoportvezetoid
WHERE cs.id=@csoportId AND cs.c_altanevid=@tanevid AND cs.c_alintezmenyid=@intezmenyid
--Tanulók
SELECT DISTINCT Nev, Osztaly, OktAzon , OsztalyId
FROM #tanulok
ORDER BY Nev
--Naplóhetek
DECLARE @elsonap as date
DECLARE @utolsonap as date
IF (
SELECT c_osztalycsoportid FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1394
WHERE c_osztalycsoportid=@csoportid
) IS NULL begin
SET @elsonap= (SELECT top 1 c_datum FROM t_tanevrendje_osszes tr WHERE c_naptipusa=1394 AND c_tanevid=@tanevId AND c_intezmenyid=@intezmenyId AND torolt='F' AND c_osszescsoportravonatkozik='T')
END
ELSE BEGIN
SET @elsonap = (
SELECT top 1 tr.C_DATUM
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1394
WHERE c_osztalycsoportid=@csoportid)
END
IF (
SELECT c_osztalycsoportid
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1395
WHERE c_osztalycsoportid=@csoportId
) IS NULL
BEGIN
SET @utolsonap = (SELECT top 1 c_datum FROM t_tanevrendje_osszes tr WHERE c_naptipusa=1395 AND c_tanevid=@tanevId AND c_intezmenyid=@intezmenyId AND torolt='F' AND c_osszescsoportravonatkozik='T')
END
ELSE BEGIN
SET @utolsonap = (
SELECT top 1 tr.C_DATUM
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id=otr.c_tanevrendjeid AND tr.c_naptipusa=1395
WHERE c_osztalycsoportid=@csoportId)
END
SELECT
nn.C_HETSORSZAMA Het
,FORMAT(MIN(nn.C_NAPDATUMA), 'yyyy.MM.dd.') HetEleje
,FORMAT(MAX(nn.C_NAPDATUMA), 'yyyy.MM.dd.') HetVege
FROM T_NAPTARINAP_OSSZES nn
WHERE
nn.C_NAPDATUMA BETWEEN @ElsoNap AND @UtolsoNap
AND nn.C_HETNAPJA BETWEEN 1407 AND 1413
AND nn.TOROLT='F'
AND nn.c_tanevId = @tanevId
GROUP BY nn.C_HETSORSZAMA
ORDER BY MIN(nn.C_NAPDATUMA)
--Tanuló adatok
SELECT * FROM #tanulok ORDER BY Nev
--Mulasztások
DECLARE @Mulasztasok TABLE ( IgazoltE nvarchar(1), Tanulo int, Tipus int)
DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F')
SELECT
DATEPART(MONTH, Datum) Honap
,TantargyId Id
,Igazolt IgazoltE
,TanuloId TanuloId
,TanuloCsoportId TanuloCsoportId
,IgazolasTipusa IgazolasTipus
,Datum Datum
,Tipusa Tipus
,KesesPercben KesesPercben
,HetSorszama HetSorszama
,Oraszam Oraszam
,CAST(DATEPART(MONTH, Datum) AS NVARCHAR(10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') ElmeletGyakorlat
,C_GYAKORLATI isGyakorlat
INTO #mulasztasTmp
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @csoportId, @iskolaErdekuSzamit, 1, 0, DEFAULT, DEFAULT, 0) TanulokMulasztasai
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId
SELECT
TanuloId Id
,TanuloCsoportId
,Sorszam
,TorzslapSzam
,OktAzon
,TajSzam
,AnyjaNeve
,SzulHely
,SzulIdo
,SocAdat
,Kepzes
,TanuloNeve
,Allampolgarsaga
,DiakIgazolvanySzam
,KilepesDatum
,BeirasiNaploSorszam
,AktualisOsztaly Osztaly
INTO #studentsWithTanuloCsoport
FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId)
EXEC sp_GetDokumentumMulasztasokIdoszakonkent
@tanevId = @tanevId,
@osztalyCsoportId = @csoportId,
@iskolaErdekuSzamit = @iskolaErdekuSzamit,
@isReszletesMulasztasok = 0
--Napló
SELECT distinct nn.c_hetsorszama as Het, d.c_name as Nap, FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') as Datum FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum=nn.c_napdatuma AND tao.c_osztalycsoportid=@csoportid AND tao.torolt='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=nn.c_hetnapja AND d.C_TANEVID = @tanevId AND d.TOROLT = 'F'
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id=tao.c_foglalkozasid AND fog.c_tanevid=@tanevid
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=fog.c_tanarid AND f.torolt='F'
WHERE nn.c_napdatuma>=@elsonap AND nn.c_napdatuma<=@utolsonap
ORDER BY nn.c_hetsorszama,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu')
--Napló adatok
DECLARE @datum DATE = GETDATE()
CREATE TABLE #OraSorszam (TanitasioraId INT PRIMARY KEY, OraSorszam INT)
INSERT INTO #OraSorszam
EXEC sp_GetOraSorszamByOsztaly
@osztalyCsoportId = @csoportId,
@datum = @datum,
@intezmenyId = @intezmenyId,
@tanevId = @tanevId
SELECT DISTINCT
tao.C_ORASZAM Oraszam
,tao.C_HETSORSZAMA Het
,FORMAT(tao.C_DATUM, 'yyyy. MMMM dd.', 'hu-hu') Datum
,CONVERT(VARCHAR(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(VARCHAR(5), tao.C_ORAVEGE, 108) DatumKezdettel
,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, f.C_NYOMTATASINEV) Tanar
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN --
+ ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) TantargyNev
,tao.C_TANTARGYID TantargyId
,tao.C_MEGTARTOTT Megtartott
,tao.C_TEMA Tema
,OraSorszam
,C_ORAKEZDETE
INTO #megtartottOrak
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.C_FOGLALKOZASID AND fog.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = tao.C_TANARID AND f.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.ID = tao.C_HELYETTESITOTANARID
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID
LEFT JOIN (SELECT DISTINCT OraSorszam, TanitasioraId FROM #OraSorszam) oraSorszam ON oraSorszam.TanitasioraId = tao.Id
WHERE
tao.C_OSZTALYCSOPORTID = @csoportid
AND tao.TOROLT = 'F'
ORDER BY tao.C_ORAKEZDETE, tao.C_ORASZAM
SELECT * FROM #megtartottOrak
--Napló mulasztás
SELECT C_HETSORSZAMA Het, C_NYOMTATASINEV Tanulo,
MAX([1]) AS [Hetfo], MAX([2]) AS [Kedd], MAX([3]) AS [Szerda],
MAX([4]) AS [Csutortok], MAX([5]) AS [Pentek], MAX([6]) AS [Szombat]
FROM (
SELECT C_HETSORSZAMA, C_NYOMTATASINEV, [0], [1], [2], [3], [4], [5], [6]
FROM (
SELECT DISTINCT n.C_NAPTARINAPID, DATEPART(dw,n.C_DATUM) AS NAP, t.C_NYOMTATASINEV, n.C_HETSORSZAMA,
'[' + STUFF((
SELECT ', ' + CAST(OraSorszam AS VARCHAR(3)) + IIF(tm.C_TIPUS = 1499, '(k)','')
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID
LEFT JOIN (SELECT DISTINCT OraSorszam, TanitasioraId FROM #OraSorszam) oraSorszam ON oraSorszam.TanitasioraId = o.Id
WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID
AND m.C_ORATANULOIID = tm.C_ORATANULOIID
AND tm.C_TANEVID = @tanevId
and tm.torolt='F' and tm.c_intezmenyId=@intezmenyId and o.c_tanevId=@tanevId
and o.C_OSZTALYCSOPORTID = @csoportId
and o.TOROLT = 'F'
ORDER BY o.C_NAPTARINAPID, o.C_ORASZAM
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,2,'') + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'F', 1, 0)) AS varchar(2)) AS hianyzas
FROM T_TANITASIORA_OSSZES n
INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = n.ID and m.torolt='F'
INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID
WHERE
n.C_TANEVID = @tanevId
AND m.C_TANEVID = @tanevId
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
and n.C_OSZTALYCSOPORTID = @csoportId
and n.TOROLT = 'F'
GROUP BY n.C_NAPTARINAPID, C_ORATANULOIID, C_NYOMTATASINEV, n.C_HETSORSZAMA, n.C_DATUM) AS SUB
PIVOT
(
MAX(HIANYZAS)
FOR NAP IN ([0], [1], [2], [3], [4], [5], [6])
) AS PivotTable
) AS ASD
GROUP BY C_HETSORSZAMA, C_NYOMTATASINEV
ORDER BY C_HETSORSZAMA
--Tanuló feljegyzései
SELECT
tte.C_TANULOID AS Tanulo
,FORMAT(tao.c_datum, 'yyyy.MM.dd.') AS Idopont
,d.C_NAME AS Tipus
,te.C_TARTALOM AS Feljegyzes
,f.C_NYOMTATASINEV AS Feljegyzo
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN T_TANULOESEMENY_OSSZES te ON te.Id = tte.C_TANULOESEMENYID
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.Id = te.C_TANITASIORAID
INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = te.C_FELJEGYZOID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.Id = te.C_TIPUS AND d.C_TANEVID = @tanevId AND d.TOROLT = 'F'
WHERE
C_OSZTALYCSOPORTID = @csoportId
AND te.TOROLT = 'F'
AND C_TIPUS <> 1534
CREATE TABLE #Gondviselok (TanuloId INT, GondviseloId INT PRIMARY KEY CLUSTERED)
INSERT INTO #Gondviselok
SELECT
TanuloId
,GondviseloId
FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T')
CREATE TABLE #GondViseloCimTable (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX))
INSERT INTO #GondViseloCimTable
SELECT
GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @csoportId) btemp
WHERE
temp.GondviseloId = btemp.GondviseloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
,cimTipusa.C_NAME
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @csoportId) temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa AND cimTipusa.C_TANEVID = @tanevId AND cimTipusa.TOROLT = 'F'
CREATE TABLE #EmailCimTableTemp (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT)
INSERT INTO #EmailCimTableTemp
SELECT
TanuloId
,C_EMAILCIM
,GondviseloId
FROM #Gondviselok
INNER JOIN T_EMAIL_OSSZES email ON email.C_GONDVISELOID = GondviseloId
WHERE
email.TOROLT = 'F'
AND email.C_TANEVID = @tanevId
AND LEN(C_EMAILCIM) > 0
CREATE TABLE #EmailCimGondviseloTable(GondviseloId INT PRIMARY KEY CLUSTERED, EmailCim NVARCHAR(MAX))
INSERT INTO #EmailCimGondviseloTable
SELECT DISTINCT
GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM #EmailCimTableTemp btemp
WHERE
temp.GondviseloId = btemp.GondviseloId
AND btemp.GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Email
FROM #EmailCimTableTemp temp
WHERE
GondviseloId IS NOT NULL
CREATE TABLE #TelefonTableTemp(FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT, index ix_Ci_telefon (FelhasznaloId))
INSERT INTO #TelefonTableTemp
SELECT
TanuloId
,C_TELEFONSZAM
,GondviseloId
FROM #Gondviselok gondviselo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_GONDVISELOID = GondviseloId
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @tanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
CREATE TABLE #GondviseloTelefonTable(GondviseloId INT PRIMARY KEY CLUSTERED,Telefon NVARCHAR(MAX))
INSERT INTO #GondviseloTelefonTable
SELECT DISTINCT
GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM #TelefonTableTemp btemp
WHERE
temp.GondviseloId = btemp.GondviseloId
AND temp.FelhasznaloId = btemp.FelhasznaloId
AND GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
FROM #TelefonTableTemp temp
WHERE
GondviseloId IS NOT NULL
--Tanuló gondviselői
SELECT DISTINCT
Gondviselok.TanuloId
,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' C_NEV
,cim.Cimtipusa C_CIMTIPUSA
,cim.cim C_OSSZETETTCIM
,telefon.telefon C_TELEFONSZAM
,email.emailcim C_EMAILCIM
FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T') Gondviselok
INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.ID = Gondviselok.RokonsagifokId AND RokonsagiFok.C_TANEVID = @tanevId AND RokonsagiFok.TOROLT = 'F'
LEFT JOIN #EmailCimGondviseloTable email ON email.GondviseloId = Gondviselok.GondviseloId
LEFT JOIN #GondviseloTelefonTable telefon ON telefon.GondviseloId = Gondviselok.GondviseloId
LEFT JOIN #GondViseloCimTable cim ON cim.GondviseloId = Gondviselok.GondviseloId
--Megtartott órák száma
SELECT
COUNT(TantargyId) TantargyOraszam
,Tantargynev TantargyNev
INTO #MegtartottOrakSzama
FROM #megtartottOrak
WHERE Megtartott = 'T'
GROUP BY TantargyId, TantargyNev
SELECT DISTINCT
SUM(tmp.TantargyOraszam) OsszesTantargySzam
,STUFF((
SELECT DISTINCT ', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS NVARCHAR(MAX)) + ')'
FROM #MegtartottOrakSzama btmp
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,'') Tantargyak
FROM #MegtartottOrakSzama tmp
-- Csoport tanárai
SELECT
targy.C_NEV TargyNev
,tanar.C_NYOMTATASINEV TanarNev
,targykategoria.C_ORDER
,tanar.ID TanarId
,tanar.C_OKTATASIAZONOSITO TanarOktAzon
FROM T_FELHASZNALO_OSSZES tanar
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = tanar.ID and f.TOROLT='F' and f.C_OSZTALYCSOPORTID = @csoportId
INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID and targy.TOROLT='F'
INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA
INNER JOIN T_DICTIONARYITEMBASE_OSSZES targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND targykategoria.TOROLT = 'F' AND targykategoria.C_TANEVID = @tanevId
WHERE tanar.TOROLT = 'F' AND f.TOROLT = 'F'
AND tanar.C_INTEZMENYID = @intezmenyid
AND tanar.c_tanevId = @tanevId
GROUP BY
C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV, tanar.ID, tanar.C_OKTATASIAZONOSITO
ORDER BY
C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV
END
GO

View file

@ -0,0 +1,198 @@
IF OBJECT_ID('[dbo].[sp_GetNaplozasMulasztasList]') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_GetNaplozasMulasztasList]
END
GO
CREATE PROCEDURE [dbo].[sp_GetNaplozasMulasztasList]
@date datetime
,@oraId int
,@targyId int
,@osztalyCsoportId int
,@pCsakMegtartott bit
,@pTanevElsoTanitasiNapja datetime
,@pTanevUtolsoTanitasiNapja datetime
,@pTanevid int
,@pIntezmenyId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @hetekSzama int = 36
CREATE TABLE #TanugyiAdatok(
TanuloId int
,TanugyiAdatId int
)
CREATE TABLE #TanuloCsoport (
C_TANULOID int
,C_OSZTALYCSOPORTID int
,C_BELEPESDATUM datetime
,C_KILEPESDATUM datetime
,PRIMARY KEY CLUSTERED (C_TANULOID, C_BELEPESDATUM)
)
CREATE TABLE #TanuloMentessegOka (
C_TANULOID int
,MentessegOka nvarchar(max)
)
INSERT INTO #TanugyiAdatok (TanuloId, TanugyiAdatId)
SELECT
TanuloId
,TanugyiAdatokId
FROM fnGetOsztalyCsoportTanuloinakTanugyiAdatai (@osztalyCsoportId,default)
IF (SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT WHERE ID = @osztalyCsoportId) = 'T' BEGIN
SELECT @pTanevUtolsoTanitasiNapja = C_DATUM, @hetekSzama = 32
FROM T_TANEVRENDJE_OSSZES
WHERE TOROLT = 'F'
AND C_TANEVID = @pTanevid
AND C_NAPTIPUSA = 1402
END
INSERT INTO #TanuloCsoport (C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM)
SELECT DISTINCT tcs.C_TANULOID, tcs.C_OSZTALYCSOPORTID, tcs.C_BELEPESDATUM, ISNULL(tcs.C_KILEPESDATUM, @pTanevUtolsoTanitasiNapja) AS C_KILEPESDATUM
FROM T_TANULOCSOPORT tcs
WHERE tcs.torolt = 'F'
AND tcs.C_BELEPESDATUM <= @date AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @date)
AND tcs.c_osztalycsoportid = @osztalyCsoportId
AND (tcs.C_BELEPESDATUM < tcs.C_KILEPESDATUM OR tcs.C_KILEPESDATUM IS NULL)
INSERT INTO #TanuloMentessegOka (C_TANULOID, MentessegOka)
SELECT C_TANULOID
,MentessegOka = STUFF((
SELECT DISTINCT ' | ' + tm.C_MENTESSEGOKA
FROM T_TANULOMENTESSEG tm
WHERE tm.C_TANTARGYID = @targyId AND tm.C_TANULOID = #TanuloCsoport.C_TANULOID
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,3,''
)
FROM #TanuloCsoport
CREATE TABLE #Feljegyzes (
tanuloid int
,tipus int
,id int
,PRIMARY KEY CLUSTERED (tanuloid, tipus, id)
)
INSERT INTO #Feljegyzes
SELECT tte.C_TANULOID, te.C_TIPUS, te.ID
FROM T_TANULOESEMENY te
INNER JOIN T_TANULO_TANULOESEMENY tte on tte.C_TANULOESEMENYID = te.ID
WHERE te.C_TANITASIORAID = @oraId
AND te.TOROLT = 'F'
CREATE TABLE #Result (
TanuloId int
,TantargyId int
,Mulasztas int
,MegtartottOra int
,HatralevoOra int
,PRIMARY KEY CLUSTERED (TanuloId, TantargyId)
)
EXEC [uspGetOsztalycsoportTantargyiMulasztasai]
@pOsztalyId = @osztalyCsoportId
,@pTantargyId = @targyId
,@pTanevid = @pTanevid
,@pIntezmenyId = @pIntezmenyId
,@pCsakMegtartott = @pCsakMegtartott
SELECT
ID
,MulasztasId
,TanuloNev
,MulasztasTipus
,KesesIdo
,Oka
,MAX(ErtkelesMentesseg) AS ErtkelesMentesseg
,MAX(OraMentesseg) AS OraMentesseg
,MAX(SzovegesenErtekelheto) AS SzovegesenErtekelheto
,IsMagantanulo
,MagantanulosagKezdete
,GondviseloNev
,GondviseloTelSzam
,MAX(Igazolt) Igazolt
,ISNULL(tmpHianyCnt, 0) AS MulasztasHianyCnt
,ISNULL(tmpOsszCnt, 0) AS MulasztasOsszCnt
,ISNULL(tmpMegtartottOraCnt, 0) AS MulasztasMegtartottCnt
,ISNULL(tmpHatralevoOraCnt, 0) AS MulasztasMegtarthatoCnt
,IIF(tmpOsszCnt = 0,0, ISNULL(CAST((CAST(tmpHianyCnt AS float) / CAST(tmpOsszCnt AS float)) * 100 AS int), 0)) AS MulasztasSzazalek
,IIF(Hazifeladat IS NOT NULL,'T','F') AS HaziFeladatHiany
,Hazifeladat AS HaziFeladatHianyId
,IIF(Felszereles IS NOT NULL,'T','F') AS FelszerelesHiany
,Felszereles AS FelszerelesHianyId
,IIF(Felment IS NOT NULL,'T','F') AS Felmentes
,Felment AS FelmentesId
,IIF(Dicseret IS NOT NULL,'T','F') AS TanoraiDicseret
,Dicseret AS TanoraiDicseretId
,RogzitettIgazolas AS RogzitettIgazolas
FROM (
SELECT
fh.ID AS ID
,mul.ID MulasztasId
,fh.C_NYOMTATASINEV + ' (' + FORMAT(fh.C_SZULETESIDATUM, 'yyyy.MM.dd.') + ')' TanuloNev
,isnull(mul.C_TIPUS, 1498) MulasztasTipus
,mul.C_KESESPERCBEN KesesIdo
,tmo.MentessegOka AS Oka
,tm.C_ERTEKELESMENTESITES ErtkelesMentesseg
,tm.C_ORAMENTESITES OraMentesseg
,tm.C_SZOVEGESENERTEKELHETO SzovegesenErtekelheto
,tta.C_MAGANTANULO IsMagantanulo
,tta.C_MAGANTANULOSAGKEZDETE MagantanulosagKezdete
,ISNULL(gondviselo.C_NEV,'-') as GondviseloNev
,ISNULL(telefon.C_TELEFONSZAM,'-') as GondviseloTelSzam
,mul.C_IGAZOLT as Igazolt
,ISNULL(r.MegtartottOra,0) + ISNULL(r.HatralevoOra,0) as tmpOsszCnt
,r.Mulasztas as tmpHianyCnt
,r.MegtartottOra as tmpMegtartottOraCnt
,r.HatralevoOra as tmpHatralevoOraCnt
,FeljegyzesHazifeladat.id as Hazifeladat
,FeljegyzesFelszereles.id as Felszereles
,FeljegyzesFelment.id as Felment
,FeljegyzesDicseret.id as Dicseret
,IIF(i.ID IS NOT NULL, 'T', 'F') as RogzitettIgazolas
FROM #TanuloCsoport tcs
INNER JOIN T_FELHASZNALO_OSSZES fh on fh.ID = tcs.C_TANULOID AND fh.C_TANEVID = @pTanevid
INNER JOIN #TanugyiAdatok ta ON ta.TanuloID=fh.ID
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.ID=ta.TanugyiAdatId
INNER JOIN T_TANULO_OSSZES tanulo on tanulo.id = tcs.C_TANULOID AND tanulo.C_ALTANEVID = @pTanevid and (tanulo.C_SZAKMAIGYAKORLATON <> 'T' OR tanulo.C_SZAKMAIGYAKORLATON IS NULL) AND ( tanulo.C_JOGVISZONYATSZUNETELTETO <> 'T' OR tanulo.C_JOGVISZONYATSZUNETELTETO IS NULL)
OUTER APPLY (SELECT TOP 1 g.ID, g.C_NEV FROM T_GONDVISELO_OSSZES g WHERE tanulo.ID = g.C_TANULOID AND g.TOROLT = 'F' AND g.C_TANEVID = @pTanevid ORDER BY g.ID) gondviselo
OUTER APPLY (SELECT TOP 1 t.C_TELEFONSZAM FROM T_TELEFON_OSSZES t WHERE t.C_GONDVISELOID = gondviselo.ID AND t.TOROLT = 'F' ORDER BY t.C_ALAPERTELMEZETT DESC) telefon
LEFT JOIN T_TANULOMULASZTAS_OSSZES mul on mul.C_ORATANULOIID = fh.ID AND mul.C_TANITASIORAKID = @oraId AND mul.TOROLT = 'F' AND mul.C_TANEVID = @pTanevid
LEFT JOIN T_TANULOMENTESSEG_OSSZES tm on fh.ID = tm.C_TANULOID and tm.TOROLT = 'F' AND tm.C_TANTARGYID = @targyId AND (@date BETWEEN ISNULL(tm.C_KEZDETE, @date) and isnull(tm.C_VEGE, @date)) AND tm.C_TANEVID = @pTanevid
LEFT JOIN T_IGAZOLAS_OSSZES i ON fh.ID = i.C_TANULOID AND i.TOROLT = 'F' AND (@date BETWEEN ISNULL(i.C_KEZDETE, @date) AND isnull(i.C_VEGE, @date)) AND i.C_TANEVID = @pTanevid
LEFT JOIN #TanuloMentessegOka tmo ON tcs.C_TANULOID = tmo.C_TANULOID
LEFT JOIN #Result r ON r.TanuloId = fh.ID
LEFT JOIN #Feljegyzes FeljegyzesHazifeladat ON FeljegyzesHazifeladat.tanuloId = fh.ID AND FeljegyzesHazifeladat.tipus = 6325
LEFT JOIN #Feljegyzes FeljegyzesFelszereles ON FeljegyzesFelszereles.tanuloId = fh.ID AND FeljegyzesFelszereles.tipus = 6324
LEFT JOIN #Feljegyzes FeljegyzesFelment ON FeljegyzesFelment.tanuloId = fh.ID AND FeljegyzesFelment.tipus = 1542
LEFT JOIN #Feljegyzes FeljegyzesDicseret ON FeljegyzesDicseret.tanuloId = fh.ID AND FeljegyzesDicseret.tipus = 1536
) AS x
GROUP BY
ID,
MulasztasId,
TanuloNev,
MulasztasTipus,
IsMagantanulo,
MagantanulosagKezdete,
Oka,
KesesIdo,
GondviseloNev,
GondviseloTelSzam,
tmpOsszCnt,
tmpHianyCnt,
tmpMegtartottOraCnt,
tmpHatralevoOraCnt,
Hazifeladat,
Felszereles,
Felment,
Dicseret,
RogzitettIgazolas
ORDER BY x.TanuloNev
IF OBJECT_ID('tempdb..#Result') IS NOT NULL BEGIN
DROP TABLE #Result
END
END

View file

@ -0,0 +1,243 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetSzakmaiGyNaplo]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetSzakmaiGyNaplo]
END
GO
CREATE PROCEDURE [dbo].[sp_GetSzakmaiGyNaplo]
@tanevId INT,
@intezmenyId INT,
@csoportId INT,
@iskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
--Kezdőoldal
select ia.c_nev as IntezmenyNev, dbo.fnGetDokumentumIntezmenyCime(@tanevId) as IntezmenyCim, ia.c_omkod as OMKOD, ia.c_igazgatoneve as IntezmenyVezeto, ocs.c_nev NapkozisCsoport,
isnull(f.c_nyomtatasinev,'-') as CsoportVezeto, isnull(cs.c_csoportnaploleiras,'-') as CsoportNaploLeiras, FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy. MMMM dd.', 'hu-hu') as Megnyitas,
isnull(FORMAT(cs.c_csoportnaplozarasa, 'yyyy. MMMM dd.', 'hu-hu'),'-') as Lezaras, t.c_nev as Tanev, cs.c_csoportnaploleiras as Megjegyzes
,ocs.ID NapkozisCsoportId
,f.ID CsoportVezetoId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,cs.C_TIPUSA CsoportTipusa
from T_INTEZMENY_OSSZES i
inner join T_INTEZMENYADATOK_OSSZES ia on ia.c_intezmenyid=i.id
inner join T_OSZTALYCSOPORT_OSSZES ocs on ocs.c_intezmenyid=i.id
inner join T_CSOPORT_OSSZES cs on cs.id=ocs.id
left join T_FELHASZNALO_OSSZES f on f.id=cs.c_csoportvezetoid
inner join T_TANEV_OSSZES t on t.id=ia.c_tanevid
where i.id=@intezmenyid and ia.c_tanevid=@tanevid and ocs.id=@csoportId
--Csoport tanulóinak osztályai
SELECT
COUNT(DISTINCT TanuloId) Tanulo
,dbo.fnGetDokumentumTanuloAktualisOsztaly(TanuloId) Osztaly
,dbo.fnGetDokumentumTanuloAktualisOsztalyId(TanuloId) OsztalyId
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportId, 'T')
GROUP BY dbo.fnGetDokumentumTanuloAktualisOsztaly(TanuloId), dbo.fnGetDokumentumTanuloAktualisOsztalyId(TanuloId)
CREATE TABLE #tanulo (Tanulo int, Osztaly nvarchar(max), TanuloNeve nvarchar(255), TanuloOktAzon nvarchar(20))
INSERT INTO #tanulo
SELECT
ocst.TanuloId
,dbo.fnGetDokumentumTanuloAktualisOsztaly(ocst.TanuloId) /*TODO:Tobb Osztaly*//*OM-1600*/
,fh.C_NYOMTATASINEV
,fh.C_OKTATASIAZONOSITO
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportId, 'T') AS ocst
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID=ocst.TanuloId AND fh.TOROLT='F'
declare @datum date=getdate()
create table #OraSorszam (TanitasioraId int, OraSorszam int)
insert into #OraSorszam
EXEC [sp_GetOraSorszamByOsztaly]
@osztalyCsoportId = @csoportId,
@datum = @datum,
@intezmenyId = @intezmenyId,
@tanevId = @tanevId
declare @mulasztas table (Csoport nvarchar(1), Tanulo int, Oraszam int)
insert into @mulasztas
select 'x' Csoport, tm.c_oratanuloiid Tanulo, oes.OraSorszam AS OraSzam from T_TANULOMULASZTAS_OSSZES tm
inner join T_TANITASIORA_OSSZES tao on tm.c_tanitasiorakid=tao.id and tao.c_tanevid=@tanevid
LEFT JOIN #OraSorszam oes on oes.TanitasioraId=tao.id
where
tao.c_osztalycsoportid=@csoportId
AND tm.torolt='F'
AND tm.c_tanevid=@tanevid
AND tm.c_intezmenyid=@intezmenyid
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
select f.c_nyomtatasinev Tanulo, tanulo.Osztaly Osztaly, m.[1], m.[2], m.[3], m.[4], m.[5], m.[6], m.[7], m.[8], m.[9], m.[10],
m.[11], m.[12], m.[13], m.[14], m.[15], m.[16], m.[17], m.[18],m.[19],m.[20],
m.[21], m.[22], m.[23], m.[24], m.[25], m.[26], m.[27], m.[28],m.[29],m.[30],
m.[31], m.[32], m.[33], m.[34], m.[35], m.[36], m.[37], m.[38],m.[39],m.[40],
m.[41], m.[42], m.[43], m.[44], m.[45], m.[46], m.[47], m.[48],m.[49],m.[50],
osszesM.Osszes
from #tanulo tanulo
left join (select * from @mulasztas mulasztas pivot (max(Csoport) for Oraszam in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
[11], [12], [13], [14], [15], [16], [17], [18],[19],[20],
[21], [22], [23], [24], [25], [26], [27], [28],[29],[30],
[31], [32], [33], [34], [35], [36], [37], [38],[39],[40],
[41], [42], [43], [44], [45], [46], [47], [48],[49],[50])) pv)m on m.Tanulo=tanulo.Tanulo
inner join T_FELHASZNALO_OSSZES f on f.id=tanulo.Tanulo
left join (select Tanulo, count(Csoport) as Osszes from @mulasztas m group by Tanulo) osszesM on osszesM.Tanulo=tanulo.Tanulo
order by f.c_nyomtatasinev
--napló
declare @letszam int=(select count(tcs.c_tanuloid) from T_TANULOCSOPORT_OSSZES tcs where tcs.c_osztalycsoportid=@csoportId and tcs.Torolt='F')
SELECT
tao.Id TanitasioraId
,dbo.fnGetDokumentumDatumFormatum(tao.C_DATUM) Datum
,C_ORATULAJDONOSID PedagogusId
,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, pedagogus.C_NYOMTATASINEV) PedagogusNev
,IIF(C_MEGTARTOTT = 'T', REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), 'Elmaradt') Tema
,@letszam-isnull(hianyzo.Hianyzok,0) as Letszam
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN --
+ ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) TantargyNev
,tao.C_TANTARGYID TantargyId
,tao.C_MEGTARTOTT Megtartott
,C_OSZTALYCSOPORTID OsztalyCsoportId
INTO #megtartottOrak
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN (select tm.c_tanitasiorakid as Tanitasiora, count(tm.c_oratanuloiid) Hianyzok from T_TANULOMULASZTAS_OSSZES tm where tm.Torolt='F' group by tm.c_tanitasiorakid ) hianyzo on hianyzo.Tanitasiora=tao.id
INNER JOIN T_FELHASZNALO_OSSZES pedagogus ON pedagogus.Id = tao.C_TANARID
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = tao.C_HELYETTESITOTANARID
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID AND tantargy.C_GYAKORLATI = 'T'
WHERE
C_OSZTALYCSOPORTID = @csoportId
AND tao.TOROLT = 'F'
ORDER BY tao.C_DATUM
SELECT * FROM #megtartottOrak
--hiányzások
declare @hianyzas table (Tanulo int, Osztaly nvarchar(max), Honap int, IgazoltE nvarchar(1))
insert into @hianyzas
select Tanulo, Osztaly, datepart(month,tao.c_datum) as Honap, tm.c_igazolt as IgazoltE from #tanulo tanulo
left join T_TANULOMULASZTAS_OSSZES tm on tm.c_oratanuloiid=tanulo.Tanulo and tm.torolt='F' and tm.c_tanevid=@tanevid
left join T_TANITASIORA_OSSZES tao on tao.id=tm.c_tanitasiorakid and tao.c_tanevid=@tanevid
where
tao.c_osztalycsoportid=@csoportId
AND tao.torolt='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
select f.c_nyomtatasinev as Tanulo, tanulo.Osztaly Osztaly,
--igazolt
iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
--igazolatlan
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12,
igazolt.Igazolt, igazolatlan.Igazolatlan
from #tanulo tanulo
left join (select pv.* from @hianyzas hianyzas pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv where pv.IgazoltE='T')i on tanulo.Tanulo=i.Tanulo
left join (select pv.* from @hianyzas hianyzas pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv where pv.IgazoltE='F')ni on tanulo.Tanulo=ni.Tanulo
left join (select hianyzas.Tanulo Tanulo, count(IgazoltE) as Igazolt from @hianyzas hianyzas where hianyzas.IgazoltE='T' group by hianyzas.Tanulo) igazolt on igazolt.Tanulo=tanulo.Tanulo
left join (select hianyzas.Tanulo Tanulo, count(IgazoltE) as Igazolatlan from @hianyzas hianyzas where hianyzas.IgazoltE='F' group by hianyzas.Tanulo) igazolatlan on igazolatlan.Tanulo=tanulo.Tanulo
inner join T_FELHASZNALO_OSSZES f on f.id=tanulo.Tanulo
--Mulasztások összesen
declare @hianyzasOssz table (Osztaly int, Honap int, IgazoltE nvarchar(1))
insert into @hianyzasOssz
select @csoportId, datepart(month,tao.c_datum) as Honap, tm.c_igazolt as IgazoltE from #tanulo tanulo
left join T_TANULOMULASZTAS_OSSZES tm on tm.c_oratanuloiid=tanulo.Tanulo and tm.torolt='F' and tm.c_tanevid=@tanevid
left join T_TANITASIORA_OSSZES tao on tao.id=tm.c_tanitasiorakid and tao.c_tanevid=@tanevid
where
tao.c_osztalycsoportid=@csoportId
and tao.torolt='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
declare @igazoltH table (Csoport int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int)
insert into @igazoltH
select @csoportId, iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12]
from @hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))i where i.IgazoltE='T'
--Mulasztott órák összesen
declare @igazolatlanH table (Csoport int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int)
insert into @igazolatlanH
select @csoportId, iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from @hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))ni where ni.IgazoltE='F'
select iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from @igazolth i
left join @igazolatlanH ni on i.Csoport=ni.csoport
--Mulasztó tanulók szama
declare @Igazolt table (Csoport Int, Osszes int)
insert into @Igazolt
select @csoportId as Id, count(Tanulo) as IgazoltOsszes from (select distinct tanulo from @hianyzas where IgazoltE='T')m
select i.Osszes IgazoltOsszes, ni.Osszes IgazolatlanOsszes from @Igazolt i
left join (select @csoportId as Id, count(Tanulo) as Osszes from (select distinct tanulo from @hianyzas where IgazoltE='F')m) ni on ni.Id=i.Csoport
--Mulasztott órák összesen-összesen
declare @IgazoltOsszesOsszes table (Csoport Int, Osszes int)
insert into @IgazoltOsszesOsszes
select @csoportId, count(IgazoltE) from @hianyzasOssz where IgazoltE='T'
select ioo.Osszes IgazoltOsszesOsszes, nioo.Osszes as IgazolatlanOsszesOsszes from @IgazoltOsszesOsszes ioo
left join (select @csoportId as Id, count(IgazoltE) Osszes from @hianyzasOssz where IgazoltE='F') nioo on nioo.Id=ioo.Csoport
--Megtartott órák száma
SELECT
COUNT(TantargyId) TantargyOraszam
,Tantargynev TantargyNev
INTO #MegtartottOrakSzama
FROM #megtartottOrak
WHERE Megtartott = 'T'
GROUP BY TantargyId, TantargyNev
SELECT DISTINCT
SUM(tmp.TantargyOraszam) OsszesTantargySzam
,STUFF((
SELECT DISTINCT ', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS NVARCHAR(MAX)) + ')'
FROM #MegtartottOrakSzama btmp
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,'') Tantargyak
FROM #MegtartottOrakSzama tmp
-- Csoport tanárai
SELECT
targy.C_NEV TargyNev
,tanar.C_NYOMTATASINEV TanarNev
,targykategoria.C_ORDER
,tanar.ID TanarId
,tanar.C_OKTATASIAZONOSITO TanarOktAzon
FROM T_FELHASZNALO_OSSZES tanar
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = tanar.ID and f.TOROLT='F' and f.C_OSZTALYCSOPORTID = @csoportId
INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID and targy.C_GYAKORLATI = 'T' and targy.TOROLT='F'
INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA
INNER JOIN T_DICTIONARYITEMBASE_OSSZES targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND targykategoria.TOROLT = 'F' AND targykategoria.C_TANEVID = @tanevId
WHERE tanar.TOROLT = 'F' AND f.TOROLT = 'F'
AND tanar.C_INTEZMENYID = @intezmenyid
AND tanar.c_tanevId = @tanevId
GROUP BY
C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV, tanar.ID, tanar.C_OKTATASIAZONOSITO
ORDER BY
C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV
-- Csoport tanulói
select * from #tanulo
END
GO