2017-10-30 2 views
0

Adventure Works 2014データベースを使用してSQLクエリを作成しています。Adventure Works 2014 SQLクエリ

私は、すべての顧客と各顧客の注文数を表示します。

私はそれぞれのselect文を単独で書くことを試みましたが(下記参照)、両方の質問を1つにまとめたいと思っています。

select s.CustomerID ,p.FirstName +' '+p.LastName as Name 
from Sales.Customer s,Person.Person p 
where s.CustomerID=p.BusinessEntityID 
order by s.CustomerID 


select CustomerID ,count(SalesOrderID) as OrdersCount 
from Sales.SalesOrderHeader 
group by CustomerID 
+0

明示的な 'JOIN' sintaxisの使用を推進し、アーロンバートランドは、[キックする悪い習慣:使用して古いスタイル・ジョイン]素敵な記事を書いた(http://sqlblog.com/blogs/aaron_bertrand/ archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx)を参照してください。 –

+0

[Northwind SQLの顧客一人当たりの注文総数]の可能な複製(https://stackoverflow.com/questions/44084941/northwind-sql-total-orders-per-customer) – r2d2oid

答えて

0
SELECT s.CustomerID , 
     p.FirstName +' '+p.LastName as Name, 
     count(SalesOrderID) 
FROM Sales.Customer s 
JOIN Person.Person p 
    ON s.CustomerID=p.BusinessEntityID 
LEFT JOIN Sales.SalesOrderHeader so 
    ON s.Customer_ID = so.Customer_ID 
GROUP BY s.CustomerID , 
     p.FirstName +' '+p.LastName as Name 
order by s.CustomerID 
+0

回答ありがとうございます、問題は多くの顧客があります何も注文していないので、このクエリでは表示されません。 –

+0

@GeorgeKouki '左の結合'を試してください – Simon

+0

@シモンは言ったように、左の結合を使用します。編集済みのバージョンを確認する –

関連する問題