【发布时间】:2016-04-25 02:11:51
【问题描述】:
我有一个练习题:
显示每个订单项目 - 客户名称和订单 ID、产品名称、订购数量、产品价格和总价格(订购数量 * 产品价格)以及订购日期和发货日期之间的差距(以天为单位的差距)。按订单编号订购。
北风当然。
我的查询是:
SELECT
C.ContactName, O.OrderID, P.ProductName,
OD.Quantity, OD.UnitPrice,
OD.Quantity * OD.UnitPrice as [Total Price]
FROM
Orders O, Customers C, Products P, [Order Details] OD
WHERE
C.CustomerID = O.CustomerID
AND O.OrderID = OD.OrderID
AND OD.ProductID = P.ProductID
ORDER BY
O.OrderID;
我不明白的是:什么是“日期和发货日期之间的差距”。没看懂。
谢谢。
【问题讨论】:
-
学习使用正确的显式
JOIN语法。 从不在FROM子句中使用逗号。 -
订单日期和发货日期之间的差距仅表示“订单日期和发货日期之间的天数”。如果订单日期为 04/21/2016,发货日期为 04/24/2016,则间隔为 3 天。
-
@GordonLinoff 永远不要在
FROM子句中使用逗号的建议不是在顶部和误导吗?显然,我们可以影响一些 QO 决策,但是查询优化器通常仍然能够选择一个有效的连接算法,因此我们可以编写我们喜欢表达的查询......这不是声明性语言的美妙之处吗?那一天?
标签: sql sql-server northwind