主细节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
是否有一列链接这两个表?。。