Updating field in Temporary table
You can use a CASE statement in your SET to choose the operation to perform.  Not only will this make maintenance easier, it will improve performance as well since you'll only be touching the target table once.

UPDATE  #BalSheet
SET OBCr = CASE
             WHEN trialDeb.JournalCredit = 1 THEN OBDr + ISNULL(trialDeb.Amount, 0)
             WHEN trialDeb.JournalCredit = 0 THEN OBDr - ISNULL(trialDeb.Amount, 0)
           END
FROM  ( SELECT  v.AccountId,
                v.CompanyId,
                v.JournalCredit,
                SUM(ISNULL(v.Amount, 0)) AS Amount
        FROM  #vwJournalDetails AS v,
              #TempJournalHeader AS h
        WHERE v.JournalCredit IN ( 0, 1 )
          AND h.JournalId = v.JournalId
          AND h.CompanyId = v.CompanyId
          AND h.JournalDate &gt;= @dtPrevFinUnclosedSDate
          AND h.JournalDate &lt;= @dtLastFinUnclosedEDate
        GROUP BY v.CompanyId,
                 v.AccountId,
                 v.JournalCredit) AS trialDeb
WHERE trialDeb.Accountid = #BalSheet.AccId
  AND trialDeb.CompanyId = #BalSheet.CompanyID
  AND trialDeb.CompanyId = @intCompanyId
  AND #BalSheet.AcType = 'L' ;


Note that I don't know if you still need the v.JournalCredit filter so I just changed it to an IN clause to ensure only 0 &amp; 1 were touched.  If those are the only two possible values, you can remove that predicate to improve the performance as well.