2012-11-08 40 views
0

我有兩個表HouseKeeping與字段RoomNo,FloorNo,StockItem,要求和股票表與字段Item,Available.I要選擇HouseKeeping表中的所有行和從股票table.I要求和已經使用這個查詢從股票表中獲取的需求總和顯示來自一個表的所有記錄和來自另一個表的行的總和

SELECT SUM(Requirement) AS Requirement, StockItem FROM HouseKeeping GROUP BY StockItem

除了這個我也希望所有的記錄(SELECT * FROM股票)。怎麼辦呢?請儘快回覆possible.Thanks

回答

2

如果我理解正確:

JOIN兩個表所示:

SELECT h.stockItem, SUM(h.Requirement) 
FROM HouseKeeping h 
INNER JOIN Stock s ON h.stockItem = s.Item 
GROUP BY h.stockItem 

這會給你所有的Requirement值的所有總和只在另一個表stock中有Requirement的項目。

如果要包含那些不匹配的項目,即:stock表中沒有項目。使用LEFT JOIN而不是INNER JOINISNULL(SUM(h.Requirement)來設置0而不是NULL

+0

我推薦一個左連接,以便您可以獲得可能位於H而不是S的項目。它將覆蓋內部連接的情況,因此它更安全,無需任何額外開銷。 –

+0

@PreetSangha - 答覆更新,謝謝。 –

+0

是的..它的工作,我用了左外部join.Thanks很多 – shilpa

相關問題