I doubt that you actually want to use
EXCEPT[
^] - see the documentation.
Why do I doubt it? Because in your example SQL you are attempting to use values from MonthlyFeeGenrate to update student_balance but your criteria is that the student
is not in MonthlyFeeGenrate - so you cannot retrieve those values.
You have used an inner join so the records that don't exist in BOTH tables won't be presented for the update. Have a look at this article about joins
Visual Representation of SQL Joins[
^]
So, you can get rid of the EXCEPT and get rid of the NOT EXISTS. I'm guessing you still only want to do this for April so leave that bit in. The correct way to do an Update on a join like that is to use the table alias so your query becomes
UPDATE t1 SET Balance = t2.Balance+t2.FinalFee
FROM dbo.Student_balance AS t1
INNER JOIN MonthlyFeeGenrate AS t2 ON t1.registration_id = t2.registration_id
WHERE t2.Fee_Month='april'