2012-02-15 87 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