38 lines
1.8 KiB
Transact-SQL
38 lines
1.8 KiB
Transact-SQL
-- Juttatáshoz átlag számítása az előző év végi jegyek alapján
|
|
|
|
DROP PROCEDURE IF EXISTS uspUpdateSzamitottAtlagEvvegi
|
|
GO
|
|
|
|
CREATE PROCEDURE uspUpdateSzamitottAtlagEvvegi
|
|
@pTanevId int
|
|
,@pKovTanevId int
|
|
,@pFelhasznaloId int
|
|
AS
|
|
BEGIN
|
|
|
|
UPDATE dk SET dk.C_SZAMITOTTATLAG = x.ATLAG
|
|
,dk.MODIFIER = @pFelhasznaloId
|
|
,dk.LASTCHANGED = GETDATE()
|
|
,dk.SERIAL = dk.SERIAL + 1
|
|
FROM T_TANULO_OSSZES dk
|
|
INNER JOIN (
|
|
SELECT er.C_TANULOID, AVG(ISNULL((erpot.C_ERTEKELESOSZTALYZATID - 1500), (er.C_ERTEKELESOSZTALYZATID - 1500)) * 1.0) AS ATLAG
|
|
FROM T_TANULOERTEKELES_OSSZES er
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = er.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = 7553 AND ocs.TOROLT = 'F'
|
|
LEFT JOIN T_TANULOERTEKELES_OSSZES erpot ON er.C_TANULOID = erpot.C_TANULOID AND er.TOROLT = 'F' AND erpot.C_TANTARGYID = er.C_TANTARGYID AND erpot.C_TIPUSID = 6917 -- Javítóvizsga
|
|
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = er.C_TANTARGYID AND tgy.TOROLT = 'F'
|
|
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID AND cs.TOROLT = 'F'
|
|
LEFT JOIN T_CSOPORTTIPUS_OSSZES cst ON cst.ID = cs.C_TIPUSA AND cs.C_ALTANEVID = cst.C_ALTANEVID AND cst.TOROLT = 'F'
|
|
WHERE er.C_TIPUSID = 1520 /* Év végi jegy */
|
|
AND er.TOROLT = 'F'
|
|
AND er.C_ISMAGATARTASSZORGALOM = 'F'
|
|
AND er.C_TANEVID = @pTanevId
|
|
AND tgy.C_ISOSZTALYNAPLOBANEMLATSZIK = 'F' AND tgy.C_ISTANULMANYIATLAGBANEMSZAMIT = 'F'
|
|
AND ((cs.ID IS NULL OR cst.C_ISTANORAICELU = 'T') AND tgy.C_TARGYKATEGORIA <> 1248 AND (tgy.C_FOTARGYE = 'T' OR (tgy.C_FOTARGYE = 'F' AND tgy.C_ALTANTARGYKENTNYOMTATVANYBAN = 'T')))
|
|
GROUP BY er.C_TANULOID
|
|
) x ON x.C_TANULOID = dk.ELOZOTANEVIREKORDID
|
|
WHERE dk.TOROLT = 'F'
|
|
AND dk.C_ALTANEVID = @pKovTanevId
|
|
END
|
|
GO
|
|
|