DROP PROCEDURE IF EXISTS uspUpdateAtlagByTanuloTantargy GO CREATE PROCEDURE uspUpdateAtlagByTanuloTantargy @pTanuloId int ,@pTantargyId int ,@pTanevId int ,@pIntezmenyId int ,@pOktatasNevelesiFeladatId int ,@pFelhasznaloId int AS BEGIN DECLARE @osztalyzatOsszege int ,@osztalyzatSzama int ,@sulyozottOsztalyzatOsszege int ,@sulyozottOsztalyzatSzama int SELECT @osztalyzatOsszege = SUM(d.C_VALUE) ,@osztalyzatSzama = COUNT(1) ,@sulyozottOsztalyzatOsszege = SUM(d.C_VALUE * em.C_SULY) ,@sulyozottOsztalyzatSzama = SUM(em.C_SULY) FROM T_TANULOERTEKELES_OSSZES er INNER JOIN T_ERTEKELESMOD_OSSZES em ON em.ID = er.C_ERTEKELESMODID AND em.C_ALTANEVID = er.C_TANEVID INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = er.C_ERTEKELESOSZTALYZATID AND d.C_TANEVID = er.C_TANEVID INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = er.C_OSZTALYCSOPORTID INNER JOIN T_FELADATELLATASIHELY_OSSZES feh ON feh.ID = ocs.C_FELADATELLATASIHELYID WHERE feh.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasNevelesiFeladatId AND er.C_TANULOID = @pTanuloId AND er.C_TANTARGYID = @pTantargyId AND er.C_TIPUSID = 1518 AND er.TOROLT = 'F' IF @osztalyzatSzama = 0 BEGIN DELETE FROM T_TANULOTANTARGYATLAG_OSSZES WHERE C_TANEVID = @pTanevId AND C_TANULOID = @pTanuloId AND C_TANTARGYID = @pTantargyId AND C_OKTATASNEVELESIFELADATID = @pOktatasNevelesiFeladatId END ELSE BEGIN UPDATE T_TANULOTANTARGYATLAG_OSSZES SET C_OSZTALYZATOSSZEGE = @osztalyzatOsszege ,C_OSZTALYZATSZAMA = @osztalyzatSzama ,C_SULYOZOTTOSZTALYZATOSSZEGE = @sulyozottOsztalyzatOsszege ,C_SULYOZOTTOSZTALYZATSZAMA = @sulyozottOsztalyzatSzama ,LASTCHANGED = GETDATE() ,MODIFIER = @pFelhasznaloId ,SERIAL += 1 WHERE C_TANEVID = @pTanevId AND C_TANULOID = @pTanuloId AND C_TANTARGYID = @pTantargyId AND C_OKTATASNEVELESIFELADATID = @pOktatasNevelesiFeladatId IF @@ROWCOUNT = 0 BEGIN INSERT INTO T_TANULOTANTARGYATLAG ( C_OSZTALYZATOSSZEGE ,C_OSZTALYZATSZAMA ,C_SULYOZOTTOSZTALYZATOSSZEGE ,C_SULYOZOTTOSZTALYZATSZAMA ,C_TANTARGYID ,C_TANULOID ,C_INTEZMENYID ,C_TANEVID ,TOROLT ,SERIAL ,LASTCHANGED ,CREATED ,MODIFIER ,CREATOR ,C_OKTATASNEVELESIFELADATID ) VALUES ( @osztalyzatOsszege ,@osztalyzatSzama ,@sulyozottOsztalyzatOsszege ,@sulyozottOsztalyzatSzama ,@pTantargyId ,@pTanuloId ,@pIntezmenyId ,@pTanevId ,'F' ,0 ,GETDATE() ,GETDATE() ,0 ,@pFelhasznaloId ,@pOktatasNevelesiFeladatId ) END END END GO