107 lines
5.2 KiB
Transact-SQL
107 lines
5.2 KiB
Transact-SQL
-- =============================================
|
|
-- Description: <Előszedjük a tanuló értékeléseket tantárgy alapján>
|
|
-- =============================================
|
|
DROP PROCEDURE IF EXISTS [dbo].[uspGetTanuloErtekelesDataSetByTantargy]
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[uspGetTanuloErtekelesDataSetByTantargy]
|
|
@pIntezmenyId int
|
|
,@pTanevId int
|
|
,@pTanarId int
|
|
,@pTantargyId int
|
|
,@pOsztalyCsoportId int
|
|
,@pDatum date = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
IF @pDatum IS NULL BEGIN
|
|
SET @pDatum = GETDATE()
|
|
END
|
|
|
|
CREATE TABLE #TanuloOsztalyEvfolyamTipusIdList(
|
|
TanuloId INT PRIMARY KEY
|
|
,EvfolyamTipusId INT
|
|
)
|
|
INSERT INTO #TanuloOsztalyEvfolyamTipusIdList
|
|
SELECT
|
|
TanuloId
|
|
,EvfolyamTipusId
|
|
FROM dbo.fnGetOsztalyCsoportTanuloOsztalyList(@pIntezmenyId, @pTanevId, @pOsztalyCsoportId, @pDatum)
|
|
|
|
CREATE TABLE #Mentessegek (
|
|
TanuloId int
|
|
,C_MENTESSEGOKA nvarchar(max)
|
|
,C_ERTEKELESMENTESITES char(1)
|
|
,C_SZOVEGESENERTEKELHETO char(1)
|
|
,rn int
|
|
)
|
|
|
|
INSERT INTO #Mentessegek (
|
|
TanuloId
|
|
,C_MENTESSEGOKA
|
|
,C_ERTEKELESMENTESITES
|
|
,C_SZOVEGESENERTEKELHETO
|
|
,rn
|
|
) SELECT
|
|
C_TANULOID
|
|
,C_MENTESSEGOKA
|
|
,C_ERTEKELESMENTESITES
|
|
,C_SZOVEGESENERTEKELHETO
|
|
,ROW_NUMBER() OVER (PARTITION BY C_TANULOID ORDER BY C_KEZDETE DESC) rn
|
|
FROM T_TANULOMENTESSEG_OSSZES
|
|
WHERE TOROLT='F' AND C_TANTARGYID = @pTantargyId AND ((C_KEZDETE IS NULL OR C_KEZDETE <= @pDatum) AND (C_VEGE IS NULL OR C_VEGE <= @pDatum))
|
|
|
|
SELECT
|
|
FelhasznaloTanulo.ID as TanuloId
|
|
,@pTantargyId as TantargyId
|
|
,FelhasznaloTanulo.C_NYOMTATASINEV as TanuloNev
|
|
,IIF(FelhasznaloTanulo.C_NEVSORREND = 'T',
|
|
FelhasznaloTanulo.C_UTONEV + ' '+ FelhasznaloTanulo.C_VEZETEKNEV,
|
|
FelhasznaloTanulo.C_VEZETEKNEV + ' ' + FelhasznaloTanulo.C_UTONEV) as TanuloNevElotagNelkul
|
|
,FelhasznaloTanulo.C_ANYJANEVE as AnyjaNeve
|
|
,FelhasznaloTanulo.C_SZULETESIDATUM as SzuletesiIdo
|
|
,OsztalyCsoport.C_NEV as OsztalyNev
|
|
,TanuloMentesseg.C_MENTESSEGOKA as MentessegOka
|
|
,TanuloMentesseg.C_ERTEKELESMENTESITES as ErtkelesMentesseg
|
|
,TanuloMentesseg.C_SZOVEGESENERTEKELHETO as SzovegesenErtekelheto
|
|
,TanuloErtekeles.ID as ID
|
|
,TanuloErtekeles.C_DATUM as Datum
|
|
,TanuloErtekeles.C_ROGZITESDATUM as RogzitesDatum
|
|
,TanuloErtekeles.C_TIPUSID as TipusId
|
|
,TanuloErtekeles.C_NYOMTATASINEV as ErtekeloNyomtatasiNev
|
|
,IIF(TanuloErtekeles.C_ERTEKELOID = @pTanarId,'T','F') as Modosithato
|
|
,TanuloErtekeles.C_ROGZITESDATUM as Created
|
|
,TanuloErtekeles.C_ISMAGATARTASSZORGALOM as IsMagatartasSzorgalom
|
|
,TanuloErtekeles.C_ISERTESITESELKULDVE as IsErtesitesElkuldve
|
|
,TanuloErtekeles.C_ERTEKELESOSZTALYZATID as ErtekelesOsztalyzatId
|
|
,TanariAtlagSuly.C_SULY as Suly
|
|
,TanuloErtekeles.C_ERTEKELESSZOVEG as ErtekelesSzoveg
|
|
,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV as ErtekelesSzovegRovidNev
|
|
,TanuloErtekeles.C_ERTEKELESSZAZALEK as ErtekelesSzazalek
|
|
,TanuloErtekeles.C_ERTEKELESMODID as ErtekelesModId
|
|
,TanuloErtekeles.C_ERTEKELESTEMA as ErtekelesTema
|
|
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport --NOTE: Azért TanuloCsoport-ból indul ki, mert a tanulókat akkor is meg kell jeleníteni, ha nincs értékelésük
|
|
INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloTanulo ON FelhasznaloTanulo.TOROLT = 'F' AND FelhasznaloTanulo.ID = TanuloCsoport.C_TANULOID
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
|
|
LEFT JOIN(
|
|
SELECT TanuloErtekeles.*, FelhasznaloErtekelo.C_NYOMTATASINEV
|
|
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.TOROLT = 'F' AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
|
|
INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.TOROLT = 'F' AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
|
|
INNER JOIN #TanuloOsztalyEvfolyamTipusIdList Evfolyam ON Evfolyam.TanuloId = TanuloErtekeles.C_TANULOID AND Evfolyam.EvfolyamTipusId = Osztaly.C_EVFOLYAMTIPUSA
|
|
WHERE TanuloErtekeles.TOROLT = 'F' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId
|
|
UNION ALL
|
|
SELECT TanuloErtekeles.*,FelhasznaloErtekelo.C_NYOMTATASINEV
|
|
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
|
INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.TOROLT = 'F' AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
|
|
WHERE TanuloErtekeles.TOROLT = 'F' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
|
|
) AS TanuloErtekeles ON TanuloErtekeles.C_TANULOID = TanuloCsoport.C_TANULOID
|
|
LEFT JOIN T_TANARIATLAGSULY_OSSZES TanariAtlagSuly ON TanariAtlagSuly.TOROLT = 'F'
|
|
AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F' AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
|
|
LEFT JOIN #Mentessegek TanuloMentesseg ON TanuloMentesseg.TanuloId = FelhasznaloTanulo.ID AND TanuloMentesseg.rn = 1
|
|
WHERE TanuloCsoport.TOROLT = 'F' AND TanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
|
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM > @pDatum)
|
|
|
|
END
|
|
GO
|