使用两个表进行SQL数学运算并更新新值

使用两个表进行SQL数学运算并更新新值,sql,sql-server,Sql,Sql Server,我有两张桌子 Table 01 ======== **ApprovedLeave** UserName varchar DateFrom varchar DateTo varchar NumofWorkingDays int LeaveType varchar Dept varchar LStatus1 int LStatus2 int Table02 ======= **LeaveEntitlement** UserName varchar TotalLeaveRemaining int

我有两张桌子

Table 01
========
**ApprovedLeave**
UserName varchar
DateFrom varchar
DateTo varchar
NumofWorkingDays int
LeaveType varchar
Dept varchar
LStatus1 int 
LStatus2 int

Table02
=======
**LeaveEntitlement**
UserName varchar
TotalLeaveRemaining int
我需要得到NumofWorkingDays的int值,并从表02中的剩余值中减去它,然后将其保存在相同的位置。请帮忙。这是到目前为止我的代码

select (A.TotalLeaveRemaining-B.NumofWorkingDays)
from LeaveEntitlement as A join 
     ApprovedLeave as B
     on A.UserName= B.UserName

加入只是一个开始。您还需要为每个用户进行聚合,然后执行以下运算:

select A.UserName, (A.TotalLeaveRemaining - SUM(B.NumofWorkingDays))
from LeaveEntitlement as A join 
     ApprovedLeave as B
     on A.UserName = B.UserName
group by A.UserName, A.TotalLeaveRemaining;
在SQL Server中,您将使用类似的查询进行更新:

update le
    set TotalLeaveRemaining = al.sum_NumofWorkingDays
    from LeaveEntitlement le join
         (select UserName, sum(NumofWorkingDays) as sum_NumofWorkingDays
          from ApprovedLeave
          group by UserName
         ) al
         on le.UserName = al.UserName;

我认为问题在于他不知道如何进行更新。更多信息,如何将现有值更新为queryBrilliant传递的值。更新作品查询作品。你能帮我在输入来自ASP.NET表单的过程中传递这个查询吗;TotalEaveRemaing=TotalEaveRemaing-numoWorkingDays请提供帮助。提前谢谢你。@omesh。新问题应该以问题的形式提出,而不是以评论的形式提出。它进行数学运算。我需要将剩余值更新为从查询接收到的新值@taballeman可能的副本