主细节SQL语句中的细节记录求和

主细节SQL语句中的细节记录求和,sql,sum,inner-join,Sql,Sum,Inner Join,我有两张桌子 Master Detail 在主表和明细表中,我有一个Amount字段 我需要获得详细的金额总和,并从主控中的金额中减去它,然后显示在“当前金额”中 “当前金额”应等于“主金额”-“详细金额”之和 select m.ID, max(m.Amount) - sum(d.Ammount) Current_Amount from Master m left join Detail D on m.ID = d.Master_ID group by m.ID -假设主密钥ID作为主密

我有两张桌子

Master  
Detail
在主表和明细表中,我有一个
Amount
字段

我需要获得详细的金额总和,并从主控中的金额中减去它,然后显示在“当前金额”中

“当前金额”应等于“主金额”-“详细金额”之和

select m.ID, max(m.Amount) - sum(d.Ammount) Current_Amount
from Master m
left join Detail D on m.ID = d.Master_ID
group by m.ID

-假设主密钥ID作为主密钥ID存储在详细信息中。

这会对连接条件进行假设,因为您没有指定

SELECT     Master.ID,
           (MAX(Master.Amount) - ISNULL(SUM(Detail.Amount), 0)) AS Current_Amount
FROM       Master
LEFT JOIN  Detail ON Detail.MasterID = Master.ID
GROUP BY   Master.ID

注意:
MAX(Master.Amount)
无需在group by子句中指定
Master.Amount

在两个表中没有大量详细信息的情况下,这将为您提供总计:

SELECT (Max(M.Amount) - SUM(D.Amount)) as CurrentAmount
FROM Master M
INNER JOIN Detail D
    ON M.ID = D.ID
然后,如果希望包含主Id:

SELECT M.ID, (Max(M.Amount) - SUM(D.Amount)) as CurrentAmount
FROM Master M
INNER JOIN Detail D
    ON M.ID = D.ID
GROUP BY M.ID

是否有一列链接这两个表?。。