2017-02-19 2 views
0

Ich versuche, die folgende Frage für eine Hausaufgabe zu vervollständigen, aber schon seit Stunden, und könnte einige Hilfe verwenden. Die Ergebnismenge sollte eine Tabelle mit 260 Datensätzen sein, aber die Ergebnisse, die ich erhalte, liegen in zwei verschiedenen Tabellen. Ich weiß, dass ich nahe bin, aber was vermisse ich?SQL - Need Ergebnisse in einer Tabelle

4) Zeigen Sie alle Kunden und alle Bestellungen an, die das Wort LOCK in ihrem Namen enthalten. Tipp mit einer LIKE-Anweisung. Diese Abfrage ähnelt der unteren Seite von Seite 326 und der oberen Seite von Seite 327.

a) Schreiben Sie zuerst die Abfrage, um Aufträge mit dem Wort LOCK in ihrem Namen auszuwählen. Verwenden des inneren Joins für die Produktion.Produkttabelle und das Verkaufsdetail und den Verkaufsauftragsführer. Sollte 260 Datensätze in Ihrer Ergebnismenge enthalten. Zeigen Sie der product.name und customerid

SELECT 
    Product.Name 
FROM 
    Production.Product 
INNER JOIN 
    Sales.SalesOrderDetail ON Product.ProductID = SalesOrderDetail.ProductID 
WHERE 
    Name LIKE '%lock%' 

SELECT 
    SalesOrderHeader.CustomerID 
FROM 
    Sales.SalesOrderHeader 
INNER JOIN 
    Sales.SalesOrderDetail ON SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID 
+0

Warum kommen Sie, Sie haben zwei 'SELECT' Aussagen? Schreiben Sie einfach 'SELECT Product.Name, SalesOrderHeader.CustomerID FROM', führen Sie dann Ihre Joins aus und fügen Sie eine' WHERE'-Bedingung mit dem 'LIKE'-Operator hinzu, den Sie bereits geschrieben haben. – fafl

+0

Welche DBMS benutzen Sie? –

Antwort

0

Normalerweise kann man mehr als 2 Tische

SELECT 
    SalesOrderHeader.CustomerID, Product.Name 
FROM 
    Production.Product 
INNER JOIN 
    Sales.SalesOrderDetail ON Product.ProductID = SalesOrderDetail.ProductID 
INNER JOIN 
    Sales.SalesOrderHeader ON SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID 
WHERE 
    Name LIKE '%lock%' 
Verwandte Themen