2016-04-25 2 views
2

Ich habe eine Praxis Frage:SQL Northwind Praxis

anzeigen pro Auftragsposition - den Kundennamen und Auftrags-ID, Produktname, bestellte Menge, Produktpreis und Gesamtpreis (Bestellmenge * Produktpreis) und Abstand zwischen Bestelldatum und Versanddatum (die Lücke in Tagen). Bestellung nach Bestell-ID.

Northwind natürlich.

Meine Frage war:

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; 

Das, was ich nicht bekommen, ist: Was ist die „Lücke zwischen Datum und verschifft Datum“. Ich verstehe es nicht.

Danke.

+7

Lernen Sie, die richtige explizite 'JOIN'-Syntax zu verwenden. * Niemals * Kommas in der FROM-Klausel verwenden. –

+2

[Vermeiden Sie die Verwendung der alten 'JOIN'-Syntax] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins. aspx). –

+0

Der Abstand zwischen Bestelldatum und Versanddatum bedeutet nur "wie viele Tage zwischen dem Bestelldatum und dem Versanddatum". Wenn das Bestelldatum der 21.04.2016 ist und das Versanddatum der 24.04.2016 ist, beträgt der Abstand 3 Tage. –

Antwort

3

Einschlägige auf Ihre Frage, die Lücke zwischen bestellten Datum und versendetem Datum bezieht sich auf den berechneten Wert von:

DATEDIFF(day, date_ordered, date_shipped) AS GapDays 

SQL mit DATEDIFF() Funktion, wo date_ordered und date_shipped zu den Feldnamen in Ihrer Tabelle entsprechen (Sie müssen sie möglicherweise entsprechend den tatsächlichen Feldern umbenennen; korrigieren Sie auch die JOIN-Syntax wie hier erläutert; https://msdn.microsoft.com/en-us/library/zt8wzxy4.aspx).

Hoffe, das kann helfen.