2016-11-29 3 views
1

Was ich erhalten möchte, ist "erste 5 verschiedene Kundenauftrags ID-Werte erhalten". Wenn ich unter Abfrage auf 5 begrenze, gibt es nur die Bestell-ID-Werte der ersten 4 Kunden wie erwartet zurück. (Rund um das Horn hat zwei verschiedene Auftrags-IDs) Gibt es eine Möglichkeit, die ersten 5 eindeutigen Bestell-ID-Werte des Kunden zu erhalten?Wie erhält man zuerst n eindeutigen Spaltenwert von links verbinden?

SELECT Customers.CustomerName, Orders.OrderID 
FROM Customers 
LEFT JOIN Orders 
ON Customers.CustomerID=Orders.CustomerID 
ORDER BY Customers.CustomerName; 


CustomerName      OrderID 
Alfreds Futterkiste     10001 
Ana Trujillo Emparedados y helados 10308 
Antonio Moreno Taquería    10365 
Around the Horn      10355 
Around the Horn      10383 
B's Beverages      10289 
Antonio baa       10444 
....        .... 

EDIT: Was ich zuerst 5 verschiedene Kunden erhalten möchten;

Alfreds Futterkiste     10001 (first customer) 
Ana Trujillo Emparedados y helados 10308 (second customer) 
Antonio Moreno Taquería    10365 (third customer) 
Around the Horn      10355 (forth customer) 
Around the Horn      10383 (forth customer) 
B's Beverages      10289 (fifth customer) 

Hier are die Tische Ich arbeite an.

+0

Siehe http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very -simple-sql-query – Strawberry

+0

@Strawberry Ist etwas unklar? – hellzone

+0

Offensichtlich. Sonst hättest du schon eine Antwort angenommen – Strawberry

Antwort

1

diesen Versuchen.

  SELECT DISTINCT Orders.OrderID, CC.CustomerName 

      FROM Customers CC 
      LEFT JOIN Orders 
      ON CC.CustomerID=Orders.CustomerID 
      inner join 

      (
      SELECT DISTINCT Customers.CustomerName 
      FROM Customers 
      LEFT JOIN Orders 
      ON Customers.CustomerID=Orders.CustomerID 
      ORDER BY Customers.CustomerName 
      LIMIT 5 
      ) C 
      ON C.CustomerName=CC.CustomerName 

      ORDER BY CC.CustomerName 
+0

@hellzone funktioniert es für Sie? –

+0

Ich bekomme Fehler: Konnte keine Anweisung vorbereiten (1 nahe ";": Syntaxfehler) – hellzone

+0

Danke für Ihre Hilfe. Es funktioniert jetzt. – hellzone

-1

Limit-Abfrage in 5 mit "SELECT TOP 5" und zusätzliche WHERE-Klausel hinzufügen, "WHERE Customers.OrderdId IS NOT NULL"

+0

Es geht nicht um null. Ich habe meine Frage für Sie aktualisiert :) – hellzone

Verwandte Themen