Here you go: Look-up CASE..WHEN..THEN on BOL it is very neat.SELECT tblAccount.Code , tblAccount.EName , VAccountsDb.DbtTot , VAccountsCr.CrtTot , CASE WHEN tblAccount.OpInt='D' THEN ((tblAccount.OpBal+VAccountsDb.DbtTot)-VAccountsCr.CrtTot) ELSE (VAccountsDb.DbtTot-(tblAccount.OpBal+VAccountsCr.CrtTot))) END AS BalanceFROM (tblAccount LEFT JOIN VAccountsDb ON tblAccount.Code = VAccountsDb.Code) LEFT JOIN VAccountsCr ON tblAccount.Code = VAccountsCr.CodeGROUP BY tblAccount.Code, tblAccount.EName, VAccountsDb.DbtTot, VAccountsCr.CrtTotORDER BY tblAccount.Code;