2016-04-25 14 views
2

我有一個實踐的問題:SQL羅斯文實踐

顯示每個訂單項目 - 客戶名稱和訂單號,產品名稱,訂購數量,產品價格和總價格(訂購數量*產品價格)和訂單日期和發貨日期之間的差距(以天計)。按訂單ID排序。

Northwind當然。

我的查詢語句:

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; 

我不明白的事情是:什麼是「日期和發貨日期之間的差距」。我不明白。

謝謝。

+7

學習使用正確的顯式'JOIN'語法。 *從不*在'FROM'子句中使用逗號。 –

+2

[避免使用舊式'JOIN'語法](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins。 ASPX)。 –

+0

訂單日期和發貨日期之間的差距意味着「訂單日期和發貨日期之間有多少天」。如果訂單日期爲2016年4月21日,且發貨日期爲2016年4月24日,則差距爲3天。 –

回答

3

有關你的問題,下令日期和發貨日期之間的差距指的是計算值:

DATEDIFF(day, date_ordered, date_shipped) AS GapDays 
使用SQL DATEDIFF()函數,其中 date_ordereddate_shipped對應的字段名稱在表

(您可能需要根據實際字段對它們進行重命名;另外,請按照此處所述更正JOIN語法; https://msdn.microsoft.com/en-us/library/zt8wzxy4.aspx)。

希望這可能有所幫助。