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,168 @@
IF OBJECT_ID('[dbo].[fnGetLemorzsolodottTanulokByFelhely]') IS NOT NULL BEGIN
DROP FUNCTION [dbo].[fnGetLemorzsolodottTanulokByFelhely]
END
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),
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))
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
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, IsKozepesMiatt, IsRontasMiatt)
SELECT fht.TanuloId, fht.Evfolyam, fht.Neme, fht.TanuloNev, fht.OktatasiAzonosito, fht.TanuloOsztalyNev, 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,621 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_ExportEsl_A03T01_1]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_ExportEsl_A03T01_1]
END
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), 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, IsKozepesMiatt, IsRontasMiatt)
SELECT
tanulok.TanuloId
,tanulok.Evfolyam
,tanulok.Neme
,tanulok.TanuloNev
,tanulok.OktatasiAzonosito
,tanulok.TanuloOsztalyNev
,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_TANULO t ON t.C_EVISMETLO='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_EVISMETLO='T' AND fht.TanuloId=t.ID
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
,fh.Evfolyam
FROM #FHhozTartozoTanulok fh
INNER JOIN T_TANULO t ON t.C_EVISMETLO='T' AND fh.TanuloId=t.ID) 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_TANULO t ON t.C_MAGANTANULOSAGANAKOKA IN (663, 664) 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_MAGANTANULOSAGANAKOKA IN (663, 664) AND fht.TanuloId=t.ID
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_TANULO t ON t.C_MAGANTANULOSAGANAKOKA IN (663, 664)
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 @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,641 @@
IF OBJECT_ID('[dbo].[sp_GetESL_A03T01_1]') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_GetESL_A03T01_1]
END
GO
CREATE PROCEDURE [dbo].[sp_GetESL_A03T01_1]
@tanevId INT,
@intezmenyId INT,
@feladatEllatasiHelyId INT,
@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))
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)
SELECT
tanulok.TanuloId
,tanulok.Evfolyam
,tanulok.Neme
,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
/* !!! 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_TANULO t ON t.C_EVISMETLO='T'
AND fht.TanuloId=t.ID
AND fht.TanuloId=t.ID
AND fht.Neme=5)
INSERT INTO #tmpA03T01
SELECT
'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_TANULO t ON t.C_EVISMETLO='T'
AND fht.TanuloId=t.ID
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
----------------------------------------------------------------------
-- 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_TANULO t ON t.C_MAGANTANULOSAGANAKOKA IN (663, 664)
AND fht.TanuloId=t.ID
AND 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_TANULO t ON t.C_MAGANTANULOSAGANAKOKA IN (663, 664)
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
----------------------------------------------------------------------
-- 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,147 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS [dbo].[sp_GetESL_A03T02_1]
GO
CREATE PROCEDURE [dbo].[sp_GetESL_A03T02_1]
@tanevId int,
@intezmenyId int,
@feladatEllatasiHelyId int,
@isFelevi int = 0
AS
BEGIN
SET NOCOUNT ON;
--Táblák deklarálása
CREATE TABLE #TanuloErtekeles (Id INT, Tanulo INT, TantargyKategoriaTorzsID INT)
CREATE TABLE #FHhozTartozoTanulok (TanuloId INT, Evfolyam INT, Neme INT)
CREATE TABLE #TargyKategoriaTorzs (TargyKategoriaTorzsID INT,TargyKatNev NVARCHAR(120),OrderCol INT)
CREATE TABLE #OsszesDiakDB (TargyKategoriaTorzsID INT, OsszesDiak INT, OsszesLany INT)
--1. érintett tanulók leválogatása
INSERT INTO #FHhozTartozoTanulok (TanuloId, Evfolyam, Neme)
SELECT
TanuloId
,Evfolyam
,Neme
FROM fnGetLemorzsolodottTanulokByFelhely(@feladatEllatasiHelyId, @tanevId, @isFelevi)
--2. érintett tanulók félévi/évvégi jegyeinek leválogatása
INSERT INTO #TanuloErtekeles (Id, Tanulo, TantargyKategoriaTorzsID)
SELECT
te.ID
,te.C_TANULOID
,CASE
WHEN TGY.C_TARGYKATEGORIA IN (1202,6726,6737) THEN 1202 --ANGOL
WHEN TGY.C_TARGYKATEGORIA IN (1203,6731,6741) THEN 1203 --NÉMET
WHEN TGY.C_TARGYKATEGORIA IN (1204,6729,6739) THEN 1204 --FRANCIA
WHEN TGY.C_TARGYKATEGORIA IN (1205,1206,1207,1208,1209,6728,6729,6730,6731,6732,6733,6734,6738,6739,6740,6741,6742,6743,6744) THEN 1209 --EGYÉB NYELV
WHEN TGY.C_TARGYKATEGORIA IN (1200) THEN 1200 --NEMZETISÉGI
WHEN TGY.C_TARGYKATEGORIA IN (1210) THEN 1210 --MATEK
WHEN TGY.C_TARGYKATEGORIA IN (1198) THEN 1198 --MAGYAR NYELV ÉS IRODALOM
WHEN TGY.C_TARGYKATEGORIA IN (1219) THEN 1219 --FIZIKA
WHEN TGY.C_TARGYKATEGORIA IN (1220) THEN 1220 --KÉMIA
WHEN TGY.C_TARGYKATEGORIA IN (1221) THEN 1221 --BIOLÓGIA
WHEN TGY.C_TARGYKATEGORIA IN (1223) THEN 1223 --FÖLDRAJZ
WHEN TGY.C_TARGYKATEGORIA IN (1224) THEN 1224 --ÉNEK-ZENE
WHEN TGY.C_TARGYKATEGORIA IN (1229,1230) THEN 1230 --SZÁMÍTÁSTECHIKA, INFORMATIKA
WHEN TGY.C_TARGYKATEGORIA IN (1232,6755) THEN 6755 --TECHNIKA
WHEN TGY.C_TARGYKATEGORIA IN (1235) THEN 1235 --TESTNEVELÉS
WHEN TGY.C_TARGYKATEGORIA IN (6754,1215) THEN 6754 --TÖRTÉNELEM
WHEN TGY.C_TARGYKATEGORIA IN (1240,1269,1286,1274,1288,1277,1279,1273,1275,1284,1278,6749,6707,6750,1281,1287,1272,1280,1271,6751,
1270,1283,1276,1285,6752) THEN 1240 --SZAKMAI GYAKORLAT
WHEN TGY.C_TARGYKATEGORIA IN (1239,1249,1266,1254,1268,1257,1259,1253,1255,1264,1258,6745,6746,6706,1261,1267,1252,1260,1251,6747,
1250,1263,1256,1265,6748) THEN 1239 --SZAKMAI ELMÉLET
ELSE 1242 --EGYÉB
END as TantargyKategoriaTorzsID
FROM T_TANULOERTEKELES te
INNER JOIN T_TANTARGY tgy ON tgy.ID=te.C_TANTARGYID
INNER JOIN #FHhozTartozoTanulok fht on fht.TANULOID=te.C_TANULOID
WHERE te.TOROLT='F' AND te.C_TANEVID=@tanevId AND te.C_ERTEKELESOSZTALYZATID=1501 AND te.C_TIPUSID = IIF(@isFelevi = 0,1520,1519)
--3. tantárgy kategóriák megjelenítéséhez a törzskategóriák kiválogatása
INSERT INTO #TargyKategoriaTorzs (TargyKategoriaTorzsID,TargyKatNev,OrderCol)
SELECT DISTINCT
ID
,C_NAME
,CASE
WHEN ID = 1202 THEN 10--ANGOL
WHEN ID = 1203 THEN 20--NÉMET
WHEN ID = 1204 THEN 30--FRANCIA
WHEN ID = 1209 THEN 40--EGYÉB NYELV
WHEN ID = 1200 THEN 50--NEMZETISÉGI
WHEN ID = 1210 THEN 60--MATEK
WHEN ID = 1198 THEN 70--MAGYAR NYELV ÉS IRODALOM
WHEN ID = 6754 THEN 80--TÖRTÉNELEM
WHEN ID = 1219 THEN 90--FIZIKA
WHEN ID = 1220 THEN 100--KÉMIA
WHEN ID = 1221 THEN 110--BIOLÓGIA
WHEN ID = 1223 THEN 120--FÖLDRAJZ
WHEN ID = 1224 THEN 130--ÉNEK-ZENE
WHEN ID = 1230 THEN 140--SZÁMÍTÁSTECHIKA, INFORMATIKA
WHEN ID = 6755 THEN 150--TECHNIKA
WHEN ID = 1235 THEN 160--TESTNEVELÉS
WHEN ID = 1240 THEN 170--SZAKMAI GYAKORLAT
WHEN ID = 1239 THEN 180--SZAKMAI ELMÉLET
ELSE 190 --EGYÉB
END
FROM T_DICTIONARYITEMBASE WHERE ID IN (1202,1203,1204,1209,1200,1210,1198,1219,1220,1221,1223,1224,1230,6755,1235,1240,1239,1242,6754) AND C_TANEVID=@tanevId
--4. érintett diákok darabszám meghatározása adott tárgykategória törzsenként
INSERT INTO #OsszesDiakDB (OsszesDiak, OsszesLany, TargyKategoriaTorzsID)
SELECT
COUNT(x.TanuloId) as Osszes
,SUM(IIF(x.Neme=5,1,0)) as OsszesLany
,TantargyKategoriaTorzsID
FROM(
SELECT DISTINCT
fht.TanuloId
,te.TantargyKategoriaTorzsID
,fht.Neme
FROM #TanuloErtekeles te
INNER JOIN #TargyKategoriaTorzs torzs ON torzs.TargyKategoriaTorzsID=te.TantargyKategoriaTorzsID
INNER JOIN #FHhozTartozoTanulok fht ON fht.TanuloId=te.Tanulo) x
GROUP BY x.TantargyKategoriaTorzsID
--5. minden adat csoportosítva tárgykategória és évfolyam szerint
SELECT
piv.TargyKatNev AS LeirasValue
,ISNULL(piv.[1307],0) AS 'Evfolyam5'
,ISNULL(piv.[1308],0) AS 'Evfolyam6'
,ISNULL(piv.[1309],0) AS 'Evfolyam7'
,ISNULL(piv.[1310],0) AS 'Evfolyam8'
,ISNULL(piv.[1311],0) AS 'Evfolyam9'
,ISNULL(piv.[1312],0) AS 'Evfolyam10'
,ISNULL(piv.[1313],0) AS 'Evfolyam11'
,ISNULL(piv.[1314],0) AS 'Evfolyam12'
,ISNULL(piv.[6471],0) AS 'KH1'
,ISNULL(piv.[6474],0) AS 'KH2'
,ISNULL(piv.[6477],0) AS 'SzH1'
,ISNULL(piv.[6478],0) AS 'SzH2'
,ISNULL(piv.OsszesDiak,0) AS Osszesen
,ISNULL(piv.OsszesLany,0) AS Lany
FROM (
SELECT DISTINCT
te.Tanulo
,fh.Evfolyam
,tkt.TargyKatNev
,tkt.TargyKategoriaTorzsID
,odb.OsszesDiak
,odb.OsszesLany
,tkt.OrderCol
FROM #TargyKategoriaTorzs tkt
LEFT JOIN #TanuloErtekeles te ON te.TantargyKategoriaTorzsID=tkt.TargyKategoriaTorzsID
LEFT JOIN #FHhozTartozoTanulok fh on fh.TanuloId=te.Tanulo
LEFT JOIN #OsszesDiakDB odb ON odb.TargyKategoriaTorzsID=tkt.TargyKategoriaTorzsID
) pBase
PIVOT (count(Tanulo) for Evfolyam in ([1307], [1308], [1309], [1310], [1311], [1312], [1313], [1314], [6471], [6474], [6477], [6478])) piv
ORDER BY piv.OrderCol
END