Microsoft SQL Server Management Studio - SELECT ALL 来自两个没有重复列的 INNER JOIN 表

Microsoft SQL Server Management Studio - SELECT ALL from two INNER JOIN tables without duplicate columns

我正在使用 Microsoft SQL Server Management Studio 并尝试使用 GROUP BY 和 WHERE 语句,我也尝试使用 DISTINCT 但不确定我是否将它们放在了错误的位置或什么.我尝试了几种不同的方式,几次都没有运气。我得到错误或重复。

问题来了:

/*
JOIN the Orders and OrderDetails tables to display all available fields
about an order; however, only display the order number one time.
Display an additional column labeled SubTotal that will multiply
the quoted price by the quantity ordered.
*/

这是我到目前为止所得到的减去非工作失败的尝试位:

SELECT *,
       quotedPrice * quantityOrdered As [SubTotal]
FROM Orders INNER JOIN OrderDetails ON Orders.orderNumber = OrderDetails.orderNumber

我使用 SQL 的时间并不长,现在只有四个月左右。我还在学习中。

您想要如下内容。因为我不知道您的列名,所以以下更像是猜测。请注意,我使用 table 别名 O 表示订单,OD 表示订单详细信息。这使得更容易具体显示哪些列。另请注意(对于您的问题很重要)我只指定了一次 OrderNumber(另一个参考已被注释掉)。

SELECT
  O.OrderNumber,
  O.ColName2
  O.ColName3,
  O.ColName4,
  O.ColName5,
  ... --etc
  --OD.OrderNumber,
  OD.ColNam1,
  OD.ColName2,
  ... --etc
  OD.quotedPrice,
  OD.quantityOrdered,
  OD.quotedPrice * OD.quantityOrdered AS [SubTotal]
FROM
  Orders O
  INNER JOIN OrderDetails OD
    ON O.orderNumber = OD.orderNumber

顺便说一句,使用 * 字符列出所有列很少是好的做法,尽管这样做看起来很方便。这是一个可能不好的例子。