130 lines
No EOL
3.6 KiB
Transact-SQL
130 lines
No EOL
3.6 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
|
|
DECLARE @ValasztottOsztalyok TABLE(Id int)
|
|
INSERT INTO @ValasztottOsztalyok(Id)
|
|
SELECT Data FROM fnConvertXmlIntListToTable(@pOsztalyCsoportIdXML, 'a', 'b')
|
|
|
|
INSERT INTO @OsztalyCsoport
|
|
SELECT Id
|
|
FROM @ValasztottOsztalyok
|
|
END
|
|
ELSE BEGIN
|
|
INSERT INTO @OsztalyCsoport
|
|
SELECT osztalyok.OsztalyId FROM fnGetDokumentumOsztalyokTanevenkent (@pTanevId) osztalyok
|
|
END
|
|
|
|
DECLARE ocsCur CURSOR FOR
|
|
SELECT Id FROM @OsztalyCsoport
|
|
|
|
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))
|
|
|
|
OPEN ocsCur
|
|
FETCH NEXT FROM ocsCur INTO @ocsId
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
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
|
|
,tanar.C_NYOMTATASINEV AS TanarNeve
|
|
FROM
|
|
[fnGetDokumentumErtekelesekOsztalyonkent] (@pTanevId, @ocsId, DEFAULT, DEFAULT, 1, DEFAULT) 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
|
|
INNER JOIN T_FELHASZNALO_OSSZES tanar ON
|
|
tanar.C_TANEVID = @pTanevId
|
|
AND tanar.TOROLT = 'F'
|
|
AND tanar.ID = ertekeles.ErtekeloId
|
|
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
|
|
,tanar.C_NYOMTATASINEV
|
|
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
|
|
|
|
END
|
|
GO |