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
- 我试着把 GROUPBY orderNumber
- 我试图在 select 语句中为 DISTINCT orderNumber 在带有星号(全部)的行上方创建另一行。
- 我尝试使用 WHERE 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
顺便说一句,使用 * 字符列出所有列很少是好的做法,尽管这样做看起来很方便。这是一个可能不好的例子。
我正在使用 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
- 我试着把 GROUPBY orderNumber
- 我试图在 select 语句中为 DISTINCT orderNumber 在带有星号(全部)的行上方创建另一行。
- 我尝试使用 WHERE 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
顺便说一句,使用 * 字符列出所有列很少是好的做法,尽管这样做看起来很方便。这是一个可能不好的例子。