显示一个表中的所有记录和另一个表中的行总和

时间:2012-11-08 07:46:16

标签: sql sql-server sql-server-2008

我有两个表HouseKeeping与字段RoomNo,FloorNo,StockItem,Requirement和Stock表,字段Item,Available.I想要选择HouseKeeping表中的所有行和stock表中的需求总和。我使用此查询获取来自库存表的需求总和

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

除此之外我还想要所有记录(从库存中选择*)。怎么做?请尽快回复。谢谢

1 个答案:

答案 0 :(得分:3)

如果我理解正确的话:

JOIN两个表如下:

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

这将为您提供所有Requirement值的所有总和,仅用于在另一个表Requirement中具有stock的项目。

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