337 lines
No EOL
9.4 KiB
Transact-SQL
337 lines
No EOL
9.4 KiB
Transact-SQL
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
IF OBJECT_ID('[dbo].[sp_GetUzenofuzetErtekelolap]') IS NOT NULL
|
|
BEGIN
|
|
DROP PROCEDURE [dbo].[sp_GetUzenofuzetErtekelolap]
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[sp_GetUzenofuzetErtekelolap]
|
|
@osztalyId INT,
|
|
@tanevId INT
|
|
|
|
AS
|
|
BEGIN
|
|
-- SET NOCOUNT ON added to prevent extra result sets from
|
|
-- interfering with SELECT statements.
|
|
SET NOCOUNT ON;
|
|
|
|
--Intézmény, tanév
|
|
SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
|
|
T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
|
|
dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime,
|
|
T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON,
|
|
T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM,
|
|
T_INTEZMENYADATOK_OSSZES.C_OMKOD IntezmenyOMKod,
|
|
T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE Intezmenyvezeto,
|
|
(SELECT C_OSZTALYFONOKID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = @osztalyId AND T_OSZTALY_OSSZES.C_ALTANEVID = @tanevId AND T_OSZTALY_OSSZES.TOROLT = 'F') PartnerID,
|
|
T_TANEV_OSSZES.C_NEV TANEV
|
|
FROM T_INTEZMENYADATOK_OSSZES
|
|
INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID AND T_TANEV_OSSZES.TOROLT = 'F'
|
|
WHERE
|
|
T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
|
|
AND T_TANEV_OSSZES.ID = @tanevId
|
|
|
|
--Osztály, évfolyam
|
|
SELECT T_OSZTALYCSOPORT_OSSZES.C_NEV,
|
|
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA,
|
|
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV Osztalyfonok
|
|
FROM T_OSZTALYCSOPORT_OSSZES
|
|
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.id = T_OSZTALY_OSSZES.ID
|
|
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.id = T_OSZTALY_OSSZES.c_osztalyfonokid
|
|
WHERE T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
|
|
AND T_OSZTALYCSOPORT_OSSZES.ID = @osztalyId
|
|
AND T_OSZTALYCSOPORT_OSSZES.C_TANEVID = @tanevId
|
|
|
|
|
|
--Tanuló adatai
|
|
SELECT
|
|
T_FELHASZNALO_OSSZES.ID TANULOID,
|
|
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TANULONEV,
|
|
T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO OKTATASIAZONOSITO
|
|
FROM T_FELHASZNALO_OSSZES
|
|
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') Tanulok ON Tanulok.TanuloId = T_FELHASZNALO_OSSZES.Id
|
|
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
|
|
|
|
--Jegyek
|
|
SELECT
|
|
Datum
|
|
,TipusId
|
|
,ErtekelesSzoveg
|
|
,ErtekelesOsztalyzatId
|
|
,ErtekelesOsztalyzatValue
|
|
,ErtekelesOsztalyzatNev
|
|
,ErtekelesSzazalek
|
|
,MagatartasOsztalyzatId
|
|
,MagatartasOsztalyzatNev
|
|
,MagatartasSzoveg
|
|
,MagatartasErtekId
|
|
,MagatartasErtek
|
|
,SzorgalomOsztalyzatId
|
|
,SzorgalomOsztalyzatNev
|
|
,SzorgalomSzoveg
|
|
,SzorgalomErtekId
|
|
,SzorgalomErtek
|
|
,TanuloId
|
|
,OsztalyCsoportId
|
|
,TantargyId
|
|
,TantargyNevZarojellel
|
|
,TantargyNev
|
|
,TantargyNevNyomtatvanyban
|
|
,TargyKategoriaId
|
|
,FotargyE
|
|
,FotargyId
|
|
,Altantargy
|
|
,ErtekelesTema
|
|
,Jeloles
|
|
,JelolesAndErtekelesTema
|
|
,isMagatartasSzorgalom
|
|
INTO #ErtekelesekTemp
|
|
FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId)
|
|
|
|
DECLARE @FelevVegeHonap INT,
|
|
@FelevVegeNap INT
|
|
SELECT
|
|
@FelevVegeHonap = DATEPART(mm, C_DATUM)
|
|
,@FelevVegeNap = DATEPART(dd, C_DATUM)
|
|
FROM T_TANEVRENDJE_OSSZES
|
|
WHERE
|
|
C_NAPTIPUSA = 1400
|
|
AND TOROLT = 'F'
|
|
AND C_TANEVID = @tanevid
|
|
|
|
SELECT * INTO #magatartasSzorgalomTMP FROM
|
|
(SELECT
|
|
'Magatartás' Tipus
|
|
,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
|
|
,TanuloId
|
|
,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev) Ertekeles
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
|
|
AND TipusId = 1518
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Szorgalom'
|
|
,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
|
|
,TanuloId
|
|
,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev)
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
|
|
AND TipusId = 1518
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Szorgalom'
|
|
,15 Honap
|
|
,TanuloId
|
|
,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev)
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
|
|
AND TipusId = 1519
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Magatartás'
|
|
,15 Honap
|
|
,TanuloId
|
|
,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev)
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
|
|
AND TipusId = 1519
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Szorgalom'
|
|
,16 Honap
|
|
,TanuloId
|
|
,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev)
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
|
|
AND TipusId = 1520
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Magatartás'
|
|
,16 Honap
|
|
,TanuloId
|
|
,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev)
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
|
|
AND TipusId = 1520
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Magatartás' Tipus
|
|
,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
|
|
,TanuloId
|
|
,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev) Ertekeles
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
|
|
AND TipusId = 1518
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Szorgalom' Tipus
|
|
,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
|
|
,TanuloId
|
|
,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev)
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
|
|
AND TipusId = 1518
|
|
)magszorg
|
|
|
|
SELECT DISTINCT
|
|
Honap
|
|
,TanuloId
|
|
,Tipus
|
|
,STUFF((
|
|
SELECT ', ' + CAST(Ertekeles AS nvarchar(max))
|
|
FROM #magatartasSzorgalomTMP bmsz
|
|
WHERE
|
|
msz.TanuloId = bmsz.TanuloId
|
|
AND msz.Tipus = bmsz.Tipus
|
|
AND msz.Honap = bmsz.Honap
|
|
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles
|
|
,IIF(Tipus = 'Magatartás', 0, 1) Rendez
|
|
,
|
|
CASE
|
|
WHEN Honap = 2 THEN 8
|
|
WHEN Honap = 3 THEN 9
|
|
WHEN Honap = 4 THEN 10
|
|
WHEN Honap = 5 THEN 11
|
|
WHEN Honap = 6 THEN 12
|
|
WHEN Honap = 7 THEN 13
|
|
WHEN Honap = 8 THEN 14
|
|
WHEN Honap = 9 THEN 1
|
|
WHEN Honap = 10 THEN 2
|
|
WHEN Honap = 11 THEN 3
|
|
WHEN Honap = 12 THEN 4
|
|
WHEN Honap = 13 THEN 5
|
|
WHEN Honap = 14 THEN 7
|
|
WHEN Honap = 15 THEN 6
|
|
WHEN Honap = 16 THEN 15
|
|
END AS RendezHonap
|
|
INTO #magatartasSzorgalom
|
|
FROM #magatartasSzorgalomTMP msz
|
|
|
|
SELECT * INTO #jegyekTMP FROM
|
|
(SELECT
|
|
IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
|
|
,TanuloId
|
|
,TantargyId
|
|
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) Ertekeles
|
|
,TargyKategoriaId Rendez
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
isMagatartasSzorgalom = 'F'
|
|
AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL)
|
|
AND TipusId = 1518
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
15 Honap
|
|
,TanuloId
|
|
,TantargyId
|
|
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek)
|
|
,TargyKategoriaId Rendez
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
isMagatartasSzorgalom = 'F'
|
|
AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL)
|
|
AND TipusId = 1519
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
16 Honap
|
|
,TanuloId
|
|
,TantargyId
|
|
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek)
|
|
,TargyKategoriaId Rendez
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
isMagatartasSzorgalom = 'F'
|
|
AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL)
|
|
AND TipusId = 1520
|
|
)jegyek
|
|
|
|
SELECT DISTINCT
|
|
Honap
|
|
,TanuloId
|
|
,TantargyId
|
|
,STUFF((
|
|
SELECT ', ' + CAST(Ertekeles AS nvarchar(max))
|
|
FROM #jegyekTMP bj
|
|
WHERE
|
|
j.TanuloId = bj.TanuloId
|
|
AND j.TantargyId = bj.TantargyId
|
|
AND j.Honap = bj.Honap
|
|
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles
|
|
,Rendez
|
|
,
|
|
CASE
|
|
WHEN Honap = 2 THEN 8
|
|
WHEN Honap = 3 THEN 9
|
|
WHEN Honap = 4 THEN 10
|
|
WHEN Honap = 5 THEN 11
|
|
WHEN Honap = 6 THEN 12
|
|
WHEN Honap = 7 THEN 13
|
|
WHEN Honap = 8 THEN 14
|
|
WHEN Honap = 9 THEN 1
|
|
WHEN Honap = 10 THEN 2
|
|
WHEN Honap = 11 THEN 3
|
|
WHEN Honap = 12 THEN 4
|
|
WHEN Honap = 13 THEN 5
|
|
WHEN Honap = 14 THEN 7
|
|
WHEN Honap = 15 THEN 6
|
|
WHEN Honap = 16 THEN 15
|
|
END AS RendezHonap
|
|
INTO #jegyek
|
|
FROM #jegyekTMP j
|
|
|
|
SELECT * FROM(
|
|
SELECT
|
|
TanuloId
|
|
, Tipus
|
|
, Rendez
|
|
,[9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16]
|
|
FROM (SELECT TanuloId, Ertekeles, Honap, Tipus, IIF(Tipus = 'Magatartás', 0, 1) TantargyId, Rendez
|
|
FROM #magatartasSzorgalom)a
|
|
PIVOT (MAX(Ertekeles) FOR Honap IN ([9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16])) piv
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
TanuloId TanuloId
|
|
,C_NEV TantargyNev
|
|
,Rendez
|
|
,[9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16]
|
|
FROM (SELECT TanuloId, Ertekeles, Honap, TantargyId, Rendez FROM #jegyek) j
|
|
INNER JOIN (SELECT Id, C_NEV FROM T_TANTARGY_OSSZES) t ON t.Id = TantargyId
|
|
PIVOT (MAX(Ertekeles) FOR Honap IN ([9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16])) piv
|
|
)vegleges
|
|
ORDER BY TanuloId, Rendez, Tipus
|
|
|
|
END
|
|
|
|
GO |