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

View File

@@ -0,0 +1,663 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_Nyomtatvany_Excel_IdoszakiTanuloStatisztika]
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiTanuloStatisztika]
@pTanevId int,
@pIntezmenyId int,
@pErtekelestipusaId int,
@pLezaroNaptipusId int,
@pTanevrendjeTanevKezdeteNaptipusId int = 1394,
@pMulasztasTipusIdKeses int = 1499,
@pMulasztasTipusIdHianyzas int = 1500,
@pAtsoroltTanuloAdatok int = 1,
@pElmeletgyakorlat bit = 0
AS
BEGIN
SET NOCOUNT ON;
--Const
DECLARE @ElsoFelveVege int = 1400
DECLARE @IneVege int = 1403
DECLARE @IIIneVege int = 1404
DECLARE @UtolsoTanitasiNap int = 1395
DECLARE @VegzosUtolsoTanitasiNap int = 1402
DECLARE @iskolaErdekuParam int = 1683
DECLARE @iskolaErdekuSzamit bit = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId)
CREATE TABLE #osztalyok(
OsztalyId int PRIMARY KEY
,OsztalyNev nvarchar(255)
,Keresztfeleves char(1)
,VegzosEvfolyam char(1)
,KezdeteNaptipus int
,VegeNaptipus int
,IdoszakKezdete datetime
,IdoszakVege datetime
)
CREATE TABLE #osztalyTanulok (
TANULOID nvarchar(20) PRIMARY KEY
,OSZTALYID int
,TANULONEV nvarchar(255)
,OKTATASIAZONOSITO nvarchar(20)
,OSZTALYNEV nvarchar(255)
,BELEPESDATUM DATE
,KILEPESDATUM DATE
)
CREATE TABLE #tantargyak (
TANTARGYID int
,TANTARGY_NEV nvarchar(255)
,TARGYKATEGORIA_NEV nvarchar(250)
,TARGYKATEGORIA_SORSZAM int
,C_FOTARGYE char(1)
,C_ALTANTARGYKENTNYOMTATVANYBAN char(1)
)
CREATE TABLE #szurtMulasztas (
TIPUS_CHAR char(1)
,C_TIPUS int
,C_IGAZOLT char(1)
,TANULOID nvarchar(20)
,C_GYAKORLATI char(1)
,KESESPERC int
,MULASZTASOK_SZAMA int
)
CREATE TABLE #szurtErtekeles (
TANULOID int
,OsztalyId int
,ErtekelesSzoveg nvarchar(max)
,ERTEKELES nvarchar(250)
,ERTEKELES_SZOVEG_MEGJEGYZES nvarchar(4000)
,C_ERTEKELESDATUM DATETIME
,TANTARGYID int
,TANTARGY_NEV nvarchar(255)
,TARGYKATEGORIA_NEV nvarchar(255)
,TARGYKATEGORIA_SORSZAM int
,T_TANTARGY_C_FOTARGYE char(1)
,T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN char(1)
,C_OSZTALYCSOPORTID int
,ErtekelesSzovegRovidNev nvarchar(40)
,ErtekelesSzazalek nvarchar(4)
,ErtekelesOsztalyzatValue int
,ErtekelesTema nvarchar(2000)
,INDEX CI_szurtErtekeles_Ertekeles CLUSTERED(
ERTEKELES
)
)
CREATE TABLE #szurtMulasztasRes (
TIPUS_CHAR char(1)
,C_TIPUS int
,C_IGAZOLT char(1)
,TANULOID nvarchar(20)
,KESESPERC int
,KESESORA int
,MULASZTASOK_SZAMA int
,C_GYAKORLATI char(1)
)
CREATE TABLE #szurtMulasztasOsszesRes (
C_IGAZOLT char(1)
,TANULOID nvarchar(20)
,MULASZTASOK_SZAMA int
,C_GYAKORLATI char(1)
)
CREATE TABLE #tempMulasztas (
ID int IDENTITY(1,1) PRIMARY KEY
,TIPUS_CHAR char(1)
,TIPUS int
,IGAZOLT char(1)
,TANULOID int
,GYAKORLATI char(1)
,KESESPERC int
,MULASZTASOK_SZAMA int
,OSZTALYCSOPORTID int
,DATUM datetime
)
CREATE TABLE #csopTip (
ID int primary key
)
CREATE TABLE #HozottMulasztas (
OsztalyId_TanuloID nvarchar(20)
,HozottIgazolt int
,HozottIgazolatlan int
)
CREATE TABLE #kapcsolodoOcsID (
OsztalyId int
,KapcsId int
,INDEX KapcsOcs CLUSTERED(
OsztalyId,Kapcsid
)
)
CREATE TABLE #tempOsztalyErtekelesek(
Datum datetime
,ErtekelesSzoveg nvarchar(max)
,ErtekelesSzovegRovidNev nvarchar(40)
,ErtekelesOsztalyzatValue int
,ErtekelesSzazalek nvarchar(4)
,MagatartasOsztalyzatValue int
,MagatartasSzovegRovidNev nvarchar(500)
,MagatartasErtek nvarchar(500)
,MagatartasErtekOsztalyzatkent int
,SzorgalomOsztalyzatValue int
,SzorgalomSzovegRovidNev nvarchar(255)
,SzorgalomErtek nvarchar(255)
,SzorgalomErtekOsztalyzatkent int
,TanuloId int
,OsztalyCsoportId int
,TantargyId int
,TantargyNevZarojellel nvarchar(255)
,TargyKategoriaId int
,FotargyE char(1)
,Altantargy char(1)
,ErtekelesTema nvarchar(2000)
,OsztalyId int
,INDEX IDX_tmpOsztalyErtekelesek_TantargyNull CLUSTERED (
TantargyId
)
)
INSERT INTO #csopTip(ID)
SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport (@pTanevId)
INSERT INTO #osztalyok(
OsztalyId
,OsztalyNev
,Keresztfeleves
,VegzosEvfolyam
)
SELECT
ocs.ID AS OSZTALYID
,ocs.C_NEV AS NEV
,ocs.C_KERESZTFELEVES AS KERESZTFELEVES
,ocs.C_VEGZOSEVFOLYAM AS VEGZOSEVFOLYAM
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib ON dib.ID = ocs.C_EVFOLYAMTIPUSA
AND dib.TOROLT = 'F'
AND dib.C_TANEVID = ocs.C_TANEVID
AND dib.C_TYPE = 'EvfolyamTipus'
WHERE ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @pTanevId
AND ocs.C_FELADATKATEGORIAID = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
INSERT INTO #kapcsolodoOcsID (OsztalyId,KapcsId)
SELECT
OsztalyId
,Kapcs.ID
FROM #osztalyok o
CROSS APPLY fnGetDokumentumKapcsolodoOsztalycsoportok(o.OsztalyId, @pTanevId, 0) Kapcs
INSERT INTO #tantargyak (
TANTARGYID
,TANTARGY_NEV
,TARGYKATEGORIA_NEV
,TARGYKATEGORIA_SORSZAM
,C_FOTARGYE
,C_ALTANTARGYKENTNYOMTATVANYBAN
) SELECT
tgy.ID AS TANTARGYID
,ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS TANTARGY_NEV
,dib.C_NAME AS TARGYKATEGORIA_NEV
,dib.C_VALUE AS TARGYKATEGORIA_SORSZAM
,tgy.C_FOTARGYE
,tgy.C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_TANTARGY_OSSZES AS tgy
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS dib ON dib.ID = tgy.C_TARGYKATEGORIA AND dib.C_TANEVID = tgy.C_TANEVID
AND dib.TOROLT = 'F'
WHERE tgy.TOROLT = 'F'
AND tgy.C_TANEVID = @pTanevId
DECLARE @sql nvarchar(max)=N''
INSERT INTO #tempMulasztas(
TIPUS_CHAR
,TIPUS
,IGAZOLT
,TANULOID
,GYAKORLATI
,KESESPERC
,MULASZTASOK_SZAMA
,OSZTALYCSOPORTID
,DATUM
)
SELECT
IIF(C_TIPUS = @pMulasztasTipusIdKeses, 'K', 'H')
,tm.C_TIPUS
,tm.C_IGAZOLT
,tm.C_ORATANULOIID
,tgy.C_GYAKORLATI
,SUM(tm.C_KESESPERCBEN)
,COUNT(tm.ID) AS MULASZTASOK_SZAMA
,tao.C_OSZTALYCSOPORTID
,tao.C_DATUM
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID
AND tao.TOROLT = 'F'
AND tao.C_MEGTARTOTT = 'T'
AND tao.C_TANEVID = tm.C_TANEVID
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = tao.C_TANTARGYID AND tgy.TOROLT='F'
INNER JOIN #csopTip csop ON csop.ID=tao.C_OSZTALYCSOPORTID
WHERE tm.C_TIPUS BETWEEN 1499 AND 1500
AND tm.TOROLT = 'F' AND tm.C_IGAZOLT IS NOT NULL
AND tm.C_TANEVID = @pTanevId
AND (@iskolaErdekuSzamit = 1 OR ISNULL(C_IGAZOLASTIPUSA,0)<>1533)
GROUP BY C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI, tao.C_OSZTALYCSOPORTID, C_DATUM
UPDATE #osztalyok SET
KezdeteNaptipus =
IIF(KeresztFeleves = 'F', @pTanevrendjeTanevKezdeteNaptipusId,
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @pTanevrendjeTanevKezdeteNaptipusId
WHEN @pLezaroNaptipusId = @IneVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @pTanevrendjeTanevKezdeteNaptipusId
END),
VegeNaptipus =
IIF(KeresztFeleves = 'F', IIF(VegzosEvfolyam = 'T' AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
END)
UPDATE #osztalyok SET
IdoszakKezdete = ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = KezdeteNaptipus AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = OsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId)),
IdoszakVege =
ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = VegeNaptipus AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = OsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),GETDATE())
INSERT INTO #osztalyTanulok (
TANULOID
,OSZTALYID
,TANULONEV
,OKTATASIAZONOSITO
,OSZTALYNEV
,BELEPESDATUM
,KILEPESDATUM
)
SELECT DISTINCT
CAST(tcs.C_OSZTALYCSOPORTID AS nvarchar) + '_' + CAST(fh.ID AS nvarchar) AS TANULOID
,tcs.C_OSZTALYCSOPORTID AS OSZTALYID
,fh.C_NYOMTATASINEV
,fh.C_OKTATASIAZONOSITO
,o.OsztalyNev
,tcs.C_BELEPESDATUM
,tcs.C_KILEPESDATUM
FROM T_FELHASZNALO_OSSZES AS fh
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = fh.ID AND tcs.TOROLT='F'
INNER JOIN #osztalyok o ON o.OsztalyId = tcs.C_OSZTALYCSOPORTID
WHERE tcs.C_BELEPESDATUM < o.IdoszakVege AND (o.Keresztfeleves = 'F' OR tcs.C_BELEPESDATUM >= o.IdoszakKezdete)
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= o.IdoszakVege)
AND fh.TOROLT = 'F'
INSERT INTO #tempOsztalyErtekelesek (
Datum
,ErtekelesSzoveg
,ErtekelesSzovegRovidNev
,ErtekelesOsztalyzatValue
,ErtekelesSzazalek
,MagatartasOsztalyzatValue
,MagatartasSzovegRovidNev
,MagatartasErtek
,MagatartasErtekOsztalyzatkent
,SzorgalomOsztalyzatValue
,SzorgalomSzovegRovidNev
,SzorgalomErtek
,SzorgalomErtekOsztalyzatkent
,TanuloId
,OsztalyCsoportId
,TantargyId
,TantargyNevZarojellel
,TargyKategoriaId
,FotargyE
,Altantargy
,ErtekelesTema
,OsztalyId
)
SELECT
te.C_DATUM as Datum
,te.C_ERTEKELESSZOVEG as ErtekelesSzoveg
,te.C_ERTEKELESSZOVEGROVIDNEV as ErtekelesSzovegRovidNev
,ertekelesOsztalyzat.C_VALUE as ErtekelesOsztalyzatValue
,CONVERT(NVARCHAR(3), te.C_ERTEKELESSZAZALEK)+'%' as ErtekelesSzazalek
,magatartasOsztalyzat.C_VALUE as MagatartasOsztalyzatValue
,te.C_MAGATARTASSZOVEGROVIDNEV as MagatartasSzovegRovidNev
,magatartasErtek.C_NAME as MagatartasErtek
,magatartasErtek.C_VALUE + 1 as MagatartasErtekOsztalyzatkent
,szorgalomOsztalyzat.C_VALUE as SzorgalomOsztalyzatValue
,te.C_SZORGALOMSZOVEGROVIDNEV as SzorgalomSzovegRovidNev
,szorgalomErtek.C_NAME as SzorgalomErtek
,szorgalomErtek.C_VALUE + 1 as SzorgalomErtekOsztalyzatkent
,te.C_TANULOID as TanuloId
,te.C_OSZTALYCSOPORTID as OsztalyCsoportId
,te.C_TANTARGYID as TantargyId
,IIF(tgy.C_NEV <> tgy.C_NEVNYOMTATVANYBAN AND tgy.C_NEVNYOMTATVANYBAN IS NOT NULL, tgy.C_NEVNYOMTATVANYBAN +' (' + tgy.C_NEV + ')', tgy.C_NEV) as TantargyNevZarojellel
,tgy.C_TARGYKATEGORIA as TargyKategoriaId
,tgy.C_FOTARGYE as FotargyE
,tgy.C_ALTANTARGYKENTNYOMTATVANYBAN as Altantargy
,te.C_ERTEKELESTEMA as ErtekelesTema
,o.OsztalyId
FROM T_TANULOERTEKELES_OSSZES te
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = te.C_TANULOID
AND tcs.C_BELEPESDATUM <= te.C_DATUM
AND (tcs.C_KILEPESDATUM >= te.C_DATUM OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcsErt ON tcsErt.C_TANULOID = te.C_TANULOID
AND tcsErt.C_OSZTALYCSOPORTID = te.C_OSZTALYCSOPORTID
AND tcsErt.C_BELEPESDATUM <= te.C_DATUM
AND (tcsErt.C_KILEPESDATUM >= te.C_DATUM OR tcsErt.C_KILEPESDATUM IS NULL)
AND tcsErt.TOROLT = 'F'
AND tcsErt.C_TANEVID = @pTanevId
INNER JOIN #osztalyok o ON o.OsztalyId = tcs.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES tgy ON tgy.Id = te.C_TANTARGYID AND tgy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertekelesOsztalyzat ON ertekelesOsztalyzat.ID = te.C_ERTEKELESOSZTALYZATID
AND ertekelesOsztalyzat.C_TANEVID = @pTanevId AND ertekelesOsztalyzat.TOROLT='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasOsztalyzat ON magatartasOsztalyzat.ID = te.C_MAGATARTASOSZTALYZATID
AND magatartasOsztalyzat.C_TANEVID = @pTanevId AND magatartasOsztalyzat.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomOsztalyzat ON szorgalomOsztalyzat.ID = te.C_SZORGALOMOSZTALYZATID --OsztalyzatTipus
AND szorgalomOsztalyzat.C_TANEVID = @pTanevId AND szorgalomOsztalyzat.TOROLT='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasErtek ON magatartasErtek.ID = te.C_MAGATARTASERTEKID
AND magatartasErtek.C_TANEVID = @pTanevId AND magatartasErtek.TOROLT='F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomErtek ON szorgalomErtek.ID = te.C_SZORGALOMERTEKID
AND szorgalomErtek.C_TANEVID = @pTanevId AND szorgalomErtek.TOROLT='F'
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.TOROLT='F' AND cs.ID = tcsErt.C_OSZTALYCSOPORTID
LEFT JOIN #csopTip csoptip ON csoptip.ID = cs.ID
WHERE te.C_TANEVID = @pTanevId
AND te.TOROLT = 'F'
AND C_TIPUSID = @pErtekelestipusaId
AND (@pAtsoroltTanuloAdatok = 1 OR (te.C_OSZTALYCSOPORTID IN(SELECT KapcsId FROM #kapcsolodoOcsID WHERE OsztalyId = o.OsztalyId)))
AND (cs.ID IS NULL OR csoptip.Id IS NOT NULL)
AND (ISNULL(tgy.C_TARGYKATEGORIA,0) <> 1248) --Osztályfőnöki, élet- és pályatervezés
INSERT INTO #szurtErtekeles (
TanuloId
,OsztalyId
,ErtekelesSzoveg
,ErtekelesSzovegRovidNev
,ErtekelesSzazalek
,ErtekelesOsztalyzatValue
,ErtekelesTema
,C_ERTEKELESDATUM
,TANTARGYID
,TANTARGY_NEV
,TARGYKATEGORIA_NEV
,TARGYKATEGORIA_SORSZAM
,T_TANTARGY_C_FOTARGYE
,T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN
,C_OSZTALYCSOPORTID
)
SELECT
TanuloId
,OsztalyId
,ErtekelesSzoveg
,ErtekelesSzovegRovidNev
,ErtekelesSzazalek
,ErtekelesOsztalyzatValue
,ErtekelesTema
,Datum
,TantargyId
,TantargyNevZarojellel
,dib.C_NAME
,dib.C_VALUE
,FotargyE
,Altantargy
,OsztalyCsoportId
FROM #tempOsztalyErtekelesek AS ert
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS dib ON dib.ID = ert.TargyKategoriaId AND dib.C_TANEVID = @pTanevId AND dib.TOROLT='F'
WHERE TantargyId IS NOT NULL AND (FotargyE = 'T' OR Altantargy = 'T')
--MULASZTÁS
INSERT INTO #HozottMulasztas (
OsztalyId_TanuloID
,HozottIgazolt
,HozottIgazolatlan
)
SELECT
CAST(o.ID AS nvarchar) + '_' + CAST(tcs.C_TANULOID AS nvarchar)
,SUM(IIF(tcs.C_BELEPESDATUM < o2.IdoszakVege,ISNULL(tta.C_HOZOTTIGAZOLTHIANYZAS,0),0))
,SUM(IIF(tcs.C_BELEPESDATUM < o2.IdoszakVege,ISNULL(tta.C_HOZOTTIGAZOLATLANHIANYZAS,0),0))
FROM T_OSZTALY_OSSZES o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID= o.ID AND ocs.TOROLT = 'F'
LEFT JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F'
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
INNER JOIN #osztalyok o2 ON o2.OsztalyId = o.ID
WHERE C_ALTANEVID = @pTanevId AND o.TOROLT = 'F'
GROUP BY tcs.C_TANULOID, o.ID
INSERT INTO #szurtMulasztas (
TIPUS_CHAR
,C_TIPUS
,C_IGAZOLT
,TANULOID
,C_GYAKORLATI
,KESESPERC
,MULASZTASOK_SZAMA
)
SELECT
TIPUS_CHAR
,TIPUS
,IGAZOLT
,CAST(o.OsztalyId AS nvarchar(10)) + '_' + CAST(TanuloMulasztas.TANULOID AS nvarchar(10))
,GYAKORLATI
,SUM(KESESPERC)
,SUM(MULASZTASOK_SZAMA)
FROM #tempMulasztas AS TanuloMulasztas
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = TanuloMulasztas.TANULOID AND tcs.TOROLT='F' AND tcs.C_OSZTALYCSOPORTID = TanuloMulasztas.OSZTALYCSOPORTID AND tcs.TOROLT='F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_TANULOID = tcs.C_TANULOID AND tcso.TOROLT='F'
AND tcso.C_BELEPESDATUM <= DATUM
AND (tcso.C_KILEPESDATUM IS NULL OR tcso.C_KILEPESDATUM >= DATUM)
INNER JOIN #osztalyok o ON o.OsztalyId = tcso.C_OSZTALYCSOPORTID
WHERE tcs.C_BELEPESDATUM <= DATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= DATUM)
AND (IIF(@pAtsoroltTanuloAdatok > 0, 1, 0) = 1 OR (OSZTALYCSOPORTID IN (SELECT KapcsId FROM #kapcsolodoOcsID WHERE OsztalyId = o.OsztalyId)))
AND (o.IdoszakKezdete IS NULL OR DATUM >= o.IdoszakKezdete)
AND (o.IdoszakVege IS NULL OR DATUM <= o.IdoszakVege)
GROUP BY TIPUS_CHAR, TIPUS, IGAZOLT, GYAKORLATI, o.OsztalyId,TanuloMulasztas.TANULOID
IF @pElmeletgyakorlat=0
BEGIN
INSERT INTO #szurtMulasztasRes
SELECT
TIPUS_CHAR
,C_TIPUS
,C_IGAZOLT
,TANULOID
,SUM(KESESPERC) AS KESESPERC
,SUM(KESESPERC)/45 AS KESESORA
,SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
,'F'
FROM #szurtMulasztas
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID
ORDER BY TANULOID, C_TIPUS DESC, C_IGAZOLT DESC;
INSERT INTO #szurtMulasztasOsszesRes
SELECT
C_IGAZOLT
,TANULOID
,SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
,'F'
FROM (
SELECT
C_IGAZOLT
,TANULOID
,SUM(KESESPERC)/45 AS MULASZTASOK_SZAMA
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'K'
GROUP BY TIPUS_CHAR, C_IGAZOLT, TANULOID
UNION ALL
SELECT
C_IGAZOLT
,TANULOID
,SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'H'
GROUP BY TIPUS_CHAR, C_IGAZOLT, TANULOID
) AS KM
GROUP BY C_IGAZOLT, TANULOID
ORDER BY TANULOID, C_IGAZOLT DESC;
END
ELSE
BEGIN
INSERT INTO #szurtMulasztasRes
SELECT
TIPUS_CHAR
,C_TIPUS
,C_IGAZOLT
,TANULOID
,KESESPERC
,KESESPERC/45 AS KESESORA
,MULASZTASOK_SZAMA
,C_GYAKORLATI
FROM #szurtMulasztas
ORDER BY TANULOID, C_TIPUS DESC, C_IGAZOLT DESC;
INSERT INTO #szurtMulasztasOsszesRes
SELECT
C_IGAZOLT
,TANULOID
,SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
,C_GYAKORLATI
FROM (
SELECT
C_IGAZOLT
,TANULOID
,KESESPERC/45 AS MULASZTASOK_SZAMA
,C_GYAKORLATI
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'K'
UNION ALL
SELECT
C_IGAZOLT
,TANULOID
,MULASZTASOK_SZAMA
,C_GYAKORLATI
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'H'
) AS KM
GROUP BY C_IGAZOLT, TANULOID, C_GYAKORLATI
ORDER BY TANULOID, C_IGAZOLT DESC;
END
UPDATE szm SET
MULASZTASOK_SZAMA = ISNULL(MULASZTASOK_SZAMA,0) +
CASE
WHEN szm.TIPUS_CHAR = 'H' AND szm.C_IGAZOLT = 'T' AND szm.C_GYAKORLATI = 'F'
THEN ISNULL(hm.HozottIgazolt,0)
WHEN szm.TIPUS_CHAR = 'H' AND szm.C_IGAZOLT = 'F' AND szm.C_GYAKORLATI = 'F'
THEN ISNULL(hm.HozottIgazolatlan,0)
ELSE 0
END
FROM #szurtMulasztasRes szm
INNER JOIN #HozottMulasztas hm ON hm.OsztalyId_TanuloID = szm.TANULOID
INSERT INTO #szurtMulasztasRes (
TIPUS_CHAR
,C_TIPUS
,C_IGAZOLT
,TANULOID
,MULASZTASOK_SZAMA
,C_GYAKORLATI
)
SELECT
'H'
,@pMulasztasTipusIdHianyzas
,'T'
,hm.OsztalyId_TanuloID
,ISNULL(hm.HozottIgazolt,0)
,'F'
FROM #HozottMulasztas hm
LEFT JOIN #szurtMulasztasRes szm ON szm.TANULOID = hm.OsztalyId_TanuloID
WHERE szm.TANULOID IS NULL
INSERT INTO #szurtMulasztasRes (
TIPUS_CHAR
,C_TIPUS
,C_IGAZOLT
,TANULOID
,MULASZTASOK_SZAMA
,C_GYAKORLATI
)
SELECT
'H'
,@pMulasztasTipusIdHianyzas
,'F'
,hm.OsztalyId_TanuloID
,ISNULL(hm.HozottIgazolatlan,0)
,'F'
FROM #HozottMulasztas hm
LEFT JOIN #szurtMulasztasRes szm ON szm.TANULOID = hm.OsztalyId_TanuloID
WHERE (szm.TANULOID IS NULL OR NOT EXISTS (SELECT TOP 1 TANULOID FROM #szurtMulasztasRes szm2 WHERE szm2.TANULOID = hm.OsztalyId_TanuloID AND szm2.C_IGAZOLT='F' AND szm2.TIPUS_CHAR = 'H' AND szm2.C_GYAKORLATI = 'F') )
SELECT DISTINCT
TANULOID
,TANULONEV
,OKTATASIAZONOSITO
,OSZTALYNEV
,FORMAT(BELEPESDATUM, 'yyyy.MM.dd', 'hu-HU') + ' - ' + ISNULL (FORMAT(KILEPESDATUM, 'yyyy.MM.dd', 'hu-HU'), '') AS BESOROLASA
,OSZTALYID
FROM #osztalyTanulok
ORDER BY OSZTALYNEV, TANULONEV;
SELECT
TANTARGYID
,TANTARGY_NEV
,TARGYKATEGORIA_SORSZAM
FROM #tantargyak
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
SELECT
ROW_NUMBER() OVER(ORDER BY TanuloId) AS T_TANULOERTEKELES_ID
,CAST(OsztalyId AS nvarchar(10)) + '_' + CAST(TanuloId AS nvarchar(10)) AS TANULOID
,COALESCE(CAST(ErtekelesOsztalyzatValue AS nvarchar(2)),
IIF(ErtekelesSzoveg IS NOT NULL, CASE WHEN ErtekelesSzovegRovidNev IN ('1', '2', '3', '4', '5') THEN 'Sz' ELSE ErtekelesSzovegRovidNev END, NULL),
ErtekelesSzazalek) AS ERTEKELES
,COALESCE(ErtekelesSzoveg, ErtekelesTema, '') as ERTEKELES_SZOVEG_MEGJEGYZES
,C_ERTEKELESDATUM
,TANTARGYID
,TANTARGY_NEV
,TARGYKATEGORIA_NEV
,TARGYKATEGORIA_SORSZAM
,T_TANTARGY_C_FOTARGYE
,T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN
,C_OSZTALYCSOPORTID
FROM #szurtErtekeles
SELECT
ROW_NUMBER() OVER (ORDER BY TanuloId) AS ID
,CAST(szurtMagSzorg.Osztalyid AS nvarchar(10)) + '_' + CAST(TanuloId AS nvarchar(10)) AS TANULOID
,COALESCE(CAST(MagatartasOsztalyzatValue AS nvarchar(2)), CAST(MagatartasErtekOsztalyzatkent AS nvarchar(2)), MagatartasSzovegRovidNev) AS MagatartasOsztalyzat
,MagatartasErtek
,COALESCE(CAST(SzorgalomOsztalyzatValue AS nvarchar(2)), CAST(SzorgalomErtekOsztalyzatkent AS nvarchar(2)), SzorgalomSzovegRovidNev) AS SzorgalomOsztalyzat
,SzorgalomErtek
,ErtekelesSzoveg AS C_ERTEKELESSZOVEG
,Datum AS C_ERTEKELESDATUM
,'F' AS TOROLT
FROM #tempOsztalyErtekelesek AS szurtMagSzorg
WHERE TantargyId IS NULL
SELECT * FROM #szurtMulasztasRes
SELECT * FROM #szurtMulasztasOsszesRes
SELECT TANULOID, [D] AS Dicseret, [K] AS Kituno
FROM (
SELECT TANULOID, ROW_NUMBER() OVER (ORDER BY TanuloId) T_TANULOERTEKELES_ID, LEFT(ERTEKELES_SZOVEG_MEGJEGYZES, 1) AS Szoveg
FROM #szurtErtekeles
WHERE
ERTEKELES = '5'
AND LTRIM(RTRIM(ERTEKELES_SZOVEG_MEGJEGYZES)) IN ( 'Dicséret', 'Kitűnő' )
) AS s
PIVOT(COUNT(T_TANULOERTEKELES_ID) FOR Szoveg IN ([D], [K])) piv
ORDER BY TANULOID
END
GO