2012-02-15 92 views
2

我有两个表总结的详细记录

Master 
Detail 

在主&详细信息表,我有一个Amount

我需要量之和在细节和减它从主数量和显示“Current_Amount”

“Current_Amount”应该等于“Master.Amount” - “Detail.Amount”总和

+2

有一列哪个环节两张表? – Fosco 2012-02-15 15:57:31

回答

3

而无需吨的两个表的细节,这会给你总:

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 
+0

优秀的第二个查询完美地工作! – Rafee 2012-09-06 09:36:31

1

尝试:

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_ID。

1

这使得对联接条件假设,因为你没有指定...

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)根本不再需要通过子句指定的组中Master.Amount