2012-11-27 59 views
2

我最近一直在使用SQLPLUS,其中一个任务是显示两个表(股票,订单项)中的一组值。我已经完成了这部分工作,但是我在这个问题的最后部分停留了一下:“包括迄今为止没有给他们下的订单的股票”。SQLPLUS表故障

以下是该语句:

`select Stocks.StockNo, Stocks.Description, OrderItems.QtyOrd 
from Stocks INNER JOIN OrderItems 
ON Stocks.StockNo = OrderItems.StockNo;` 

,我已经得到了这部分正确的结果,但第二部分是躲避我,因为curernt语句不为QtyOrd显示0值。 任何帮助,将不胜感激。

回答

1

你可能想使用LEFT OUTER JOIN否则INNER JOIN将排除那些没有任何订单的股票。您也可以考虑按库存进行分组,以便总计每个库存的总量?

SELECT Stocks.StockNo, Stocks.Description, SUM(OrderItems.QtyOrd) AS QtyOrd 
FROM Stocks 
    LEFT OUTER JOIN OrderItems 
     ON Stocks.StockNo = OrderItems.StockNo 
GROUP BY Stocks.StockNo, Stocks.Description; 
+1

WOW,谢谢斯图尔特。这非常有帮助。我很欣赏快速反应。这个问题不能关闭。 –