274 lines
No EOL
7.3 KiB
Transact-SQL
274 lines
No EOL
7.3 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetBukasraAlloTanulok
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetBukasraAlloTanulok
|
|
@pIntezmenyId int
|
|
,@pTanevId int
|
|
,@pOsztalyCsoportIdXML XML = NULL
|
|
|
|
AS
|
|
BEGIN
|
|
|
|
DECLARE @ocsId int
|
|
|
|
DECLARE @OsztalyCsoport TABLE(Id int)
|
|
|
|
IF @pOsztalyCsoportIdXML IS NOT NULL
|
|
BEGIN
|
|
INSERT INTO @OsztalyCsoport(Id)
|
|
SELECT Data FROM fnConvertXmlIntListToTable(@pOsztalyCsoportIdXML, 'a', 'b')
|
|
END
|
|
ELSE BEGIN
|
|
INSERT INTO @OsztalyCsoport
|
|
SELECT osztalyok.OsztalyId FROM fnGetDokumentumOsztalyokTanevenkent (@pTanevId) osztalyok
|
|
END
|
|
|
|
DECLARE ocsCur CURSOR FOR
|
|
SELECT DISTINCT k.ID FROM @OsztalyCsoport ocs
|
|
CROSS APPLY fnGetKapcsolodoOsztalycsoportok(ocs.ID, DEFAULT) k
|
|
|
|
CREATE TABLE #ErtekelesTemp
|
|
(
|
|
[OMKod] NVARCHAR(MAX)
|
|
,[SzulHelyIdoAnyjaNeve] NVARCHAR(MAX)
|
|
,[TanuloNev] NVARCHAR(MAX)
|
|
,[OsztalyCsoportNev] NVARCHAR(MAX)
|
|
,[TantargyNev] NVARCHAR(MAX)
|
|
,[Atlag] DECIMAL(10,2)
|
|
,[TanarNeve] NVARCHAR(MAX)
|
|
)
|
|
CREATE TABLE #CsoportNevek (OsztalyCsoportNeve nvarchar(200))
|
|
CREATE TABLE #OsszErtekeles
|
|
(
|
|
ErtekelesId INT NOT NULL,
|
|
Datum DATE,
|
|
TipusId INT,
|
|
ErtekelesSzoveg NVARCHAR(MAX),
|
|
ErtekelesSzovegRovidNev NVARCHAR(3),
|
|
ErtekelesOsztalyzatId INT,
|
|
ErtekelesOsztalyzatValue INT,
|
|
ErtekelesOsztalyzatNev NVARCHAR(MAX),
|
|
ErtekelesSzazalek NVARCHAR(MAX),
|
|
MagatartasOsztalyzatId INT,
|
|
MagatartasOsztalyzatValue INT,
|
|
MagatartasOsztalyzatNev NVARCHAR(MAX),
|
|
MagatartasSzoveg NVARCHAR(MAX),
|
|
MagatartasSzovegRovidNev NVARCHAR(3),
|
|
MagatartasErtekId INT,
|
|
MagatartasErtek NVARCHAR(MAX),
|
|
MagatartasErtekOsztalyzatkent INT,
|
|
SzorgalomOsztalyzatId INT,
|
|
SzorgalomOsztalyzatValue INT,
|
|
SzorgalomOsztalyzatNev NVARCHAR(MAX),
|
|
SzorgalomSzoveg NVARCHAR(MAX),
|
|
SzorgalomSzovegRovidNev NVARCHAR(3),
|
|
SzorgalomErtekId INT,
|
|
SzorgalomErtek NVARCHAR(MAX),
|
|
SzorgalomErtekOsztalyzatkent INT,
|
|
TanuloId INT,
|
|
TanuloCsoportId INT,
|
|
OsztalyCsoportId INT,
|
|
TantargyId INT,
|
|
TantargyNevZarojellel NVARCHAR(MAX),
|
|
TantargyNevNyomtatvanyban NVARCHAR(MAX),
|
|
TantargyNev NVARCHAR(MAX),
|
|
TantargyAngolNev NVARCHAR(MAX),
|
|
TantargyNemetNev NVARCHAR(MAX),
|
|
TargyKategoriaId INT,
|
|
FotargyE CHAR(1),
|
|
Altantargy CHAR(1),
|
|
FotargyId INT,
|
|
ErtekelesTema NVARCHAR(MAX),
|
|
ErtekeloId INT,
|
|
ErtekelesModjaId INT,
|
|
IsMagatartasSzorgalom CHAR(1),
|
|
Jeloles NVARCHAR(MAX),
|
|
JelolesAndErtekelesTema NVARCHAR(MAX),
|
|
RogzitesDatum DATE
|
|
)
|
|
|
|
OPEN ocsCur
|
|
FETCH NEXT FROM ocsCur INTO @ocsId
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
TRUNCATE TABLE #OsszErtekeles
|
|
INSERT INTO #OsszErtekeles
|
|
(
|
|
ErtekelesId
|
|
,Datum
|
|
,TipusId
|
|
,ErtekelesSzoveg
|
|
,ErtekelesSzovegRovidNev
|
|
,ErtekelesOsztalyzatId
|
|
,ErtekelesOsztalyzatValue
|
|
,ErtekelesOsztalyzatNev
|
|
,ErtekelesSzazalek
|
|
,MagatartasOsztalyzatId
|
|
,MagatartasOsztalyzatValue
|
|
,MagatartasOsztalyzatNev
|
|
,MagatartasSzoveg
|
|
,MagatartasSzovegRovidNev
|
|
,MagatartasErtekId
|
|
,MagatartasErtek
|
|
,MagatartasErtekOsztalyzatkent
|
|
,SzorgalomOsztalyzatId
|
|
,SzorgalomOsztalyzatValue
|
|
,SzorgalomOsztalyzatNev
|
|
,SzorgalomSzoveg
|
|
,SzorgalomSzovegRovidNev
|
|
,SzorgalomErtekId
|
|
,SzorgalomErtek
|
|
,SzorgalomErtekOsztalyzatkent
|
|
,TanuloId
|
|
,TanuloCsoportId
|
|
,OsztalyCsoportId
|
|
,TantargyId
|
|
,TantargyNevZarojellel
|
|
,TantargyNevNyomtatvanyban
|
|
,TantargyNev
|
|
,TantargyAngolNev
|
|
,TantargyNemetNev
|
|
,TargyKategoriaId
|
|
,FotargyE
|
|
,Altantargy
|
|
,FotargyId
|
|
,ErtekelesTema
|
|
,ErtekeloId
|
|
,ErtekelesModjaId
|
|
,IsMagatartasSzorgalom
|
|
,Jeloles
|
|
,JelolesAndErtekelesTema
|
|
,RogzitesDatum
|
|
)
|
|
SELECT
|
|
ErtekelesId
|
|
,Datum
|
|
,TipusId
|
|
,ErtekelesSzoveg
|
|
,ErtekelesSzovegRovidNev
|
|
,ErtekelesOsztalyzatId
|
|
,ErtekelesOsztalyzatValue
|
|
,ErtekelesOsztalyzatNev
|
|
,ErtekelesSzazalek
|
|
,MagatartasOsztalyzatId
|
|
,MagatartasOsztalyzatValue
|
|
,MagatartasOsztalyzatNev
|
|
,MagatartasSzoveg
|
|
,MagatartasSzovegRovidNev
|
|
,MagatartasErtekId
|
|
,MagatartasErtek
|
|
,MagatartasErtekOsztalyzatkent
|
|
,SzorgalomOsztalyzatId
|
|
,SzorgalomOsztalyzatValue
|
|
,SzorgalomOsztalyzatNev
|
|
,SzorgalomSzoveg
|
|
,SzorgalomSzovegRovidNev
|
|
,SzorgalomErtekId
|
|
,SzorgalomErtek
|
|
,SzorgalomErtekOsztalyzatkent
|
|
,TanuloId
|
|
,TanuloCsoportId
|
|
,OsztalyCsoportId
|
|
,TantargyId
|
|
,TantargyNevZarojellel
|
|
,TantargyNevNyomtatvanyban
|
|
,TantargyNev
|
|
,TantargyAngolNev
|
|
,TantargyNemetNev
|
|
,TargyKategoriaId
|
|
,FotargyE
|
|
,Altantargy
|
|
,FotargyId
|
|
,ErtekelesTema
|
|
,ErtekeloId
|
|
,ErtekelesModjaId
|
|
,IsMagatartasSzorgalom
|
|
,Jeloles
|
|
,JelolesAndErtekelesTema
|
|
,RogzitesDatum
|
|
FROM [fnGetDokumentumErtekelesekOsztalyonkent] (@pTanevId, @ocsId, 1518, DEFAULT, 1, DEFAULT, 1)
|
|
|
|
TRUNCATE TABLE #ErtekelesTemp
|
|
INSERT INTO #ErtekelesTemp
|
|
(
|
|
[OMKod]
|
|
,[SzulHelyIdoAnyjaNeve]
|
|
,[TanuloNev]
|
|
,[OsztalyCsoportNev]
|
|
,[TantargyNev]
|
|
,[Atlag]
|
|
,[TanarNeve]
|
|
)
|
|
SELECT
|
|
tanulo.C_OKTATASIAZONOSITO AS OMKod
|
|
,tanulo.C_SZULETESIHELY + ', ' + CAST(FORMAT(tanulo.C_SZULETESIDATUM, 'yyyy.MM.dd.') AS nvarchar(200)) + ', '+ tanulo.C_ANYJANEVE AS SzulHelyIdoAnyjaNeve
|
|
,tanulo.C_NYOMTATASINEV AS TanuloNev
|
|
,osztalyCsoport.C_NEV AS OsztalyCsoportNev
|
|
,ertekeles.TantargyNev AS TantargyNev
|
|
,ROUND(SUM(CAST(ertekeles.ErtekelesOsztalyzatValue AS FLOAT) * CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100), 2) AS Atlag
|
|
,STUFF((
|
|
SELECT DISTINCT ', ' + f.C_NYOMTATASINEV
|
|
FROM #OsszErtekeles
|
|
INNER JOIN T_FELHASZNALO_OSSZES AS f ON f.ID = #OsszErtekeles.ErtekeloId AND f.C_TANEVID = @pTanevId
|
|
WHERE (TantargyId = ertekeles.TantargyId) AND (TanuloId = ertekeles.TanuloId)
|
|
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)'), 1, 2, '') AS TanarNeve
|
|
FROM
|
|
#OsszErtekeles ertekeles
|
|
LEFT JOIN T_TANARIATLAGSULY tanariAtlagSuly ON
|
|
tanariAtlagSuly.C_TANEVID = @pTanevId
|
|
AND tanariAtlagSuly.TOROLT = 'F'
|
|
AND tanariAtlagSuly.C_ERTEKELESMODID = ertekeles.ErtekelesModjaId
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON
|
|
osztalyCsoport.C_TANEVID = @pTanevId
|
|
AND osztalyCsoport.TOROLT = 'F'
|
|
AND osztalyCsoport.ID = ertekeles.OsztalyCsoportId
|
|
INNER JOIN T_FELHASZNALO_OSSZES tanulo ON
|
|
tanulo.C_TANEVID = @pTanevId
|
|
AND tanulo.TOROLT = 'F'
|
|
AND tanulo.ID = ertekeles.TanuloId
|
|
WHERE
|
|
ertekeles.ErtekelesOsztalyzatValue IS NOT NULL
|
|
GROUP BY
|
|
tanulo.C_OKTATASIAZONOSITO
|
|
,tanulo.C_SZULETESIHELY
|
|
,tanulo.C_SZULETESIDATUM
|
|
,tanulo.C_ANYJANEVE
|
|
,tanulo.C_NYOMTATASINEV
|
|
,osztalyCsoport.C_NEV
|
|
,ertekeles.TantargyNev
|
|
,ertekeles.TantargyId
|
|
,ertekeles.TanuloId
|
|
HAVING
|
|
ROUND(SUM(CAST(ertekeles.ErtekelesOsztalyzatValue AS FLOAT) * CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100), 2) < 2
|
|
|
|
IF EXISTS(SELECT 1 FROM #ErtekelesTemp)
|
|
BEGIN
|
|
SELECT
|
|
tmp.OMKod
|
|
,tmp.SzulHelyIdoAnyjaNeve
|
|
,tmp.TanuloNev
|
|
,tmp.OsztalyCsoportNev
|
|
,tmp.TantargyNev
|
|
,tmp.Atlag
|
|
,tmp.TanarNeve
|
|
FROM #ErtekelesTemp tmp ORDER BY [TanuloNev],[TantargyNev]
|
|
|
|
INSERT INTO #CsoportNevek (OsztalyCsoportNeve)
|
|
SELECT top 1 [OsztalyCsoportNev] FROM #ErtekelesTemp
|
|
END
|
|
|
|
FETCH NEXT FROM ocsCur INTO @ocsId
|
|
END
|
|
|
|
CLOSE ocsCur
|
|
DEALLOCATE ocsCur
|
|
|
|
SELECT * FROM #CsoportNevek
|
|
|
|
DROP TABLE #ErtekelesTemp
|
|
DROP TABLE #CsoportNevek
|
|
DROP TABLE #OsszErtekeles
|
|
|
|
END
|
|
GO |