2016-09-12 18 views
0

のためのほとんどを支払った顧客の名前を見つけ、私はで過ごした最高の合計を持つものを見つける必要がありますその顧客の名前を見つけることができます。これは私のリレーショナル・スキーマのすべての販売注文から</p> <p><a href="https://i.stack.imgur.com/FG7fD.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/FG7fD.png" alt="enter image description here"></a></p> <p>ある単一の注文

私は本当にこれに対する解決策を思いつく方法を知らない。最高の合計で順位を見つける

は難しいことではありません。

SELECT MAX(total) 
FROM sales_order 

しかし、私は先に行く方法がわかりません。 >それからcustomer_idを見つける - - 私は何をしようとしてきたことは、最高の合計で順位を思い付くために

です>sales_order.customer_id = customer_customer_idはそのようにスクリプトを書き留め - >顧客のnameを示しました。

しかし、私は最初のステップから2番目のステップに進むのに問題があります。私が探しているものではありません

SELECT MAX(total), customer_id 
FROM sales_order 
GROUP BY customer_id 

:私が行うことができました唯一のことは、単一のために、各顧客が費やしたお金の最高額を得ることです。

ありがとうございます!

+0

がhttp://meta.stackoverflow.com/questions/333952/why-should-i-provide-anを参照してください。 -mcve-for-what-like-to-a-very-simple-sql-query – Strawberry

+3

サブクエリは簡単な方法です: 'select * from sales_order o内部結合customer c on c.Customer_ID = o .Customer_ID where Total =(sales_orderからmax(Total)を選択) '潜在的にこれは複数の注文を返す可能性があります。 – shawnt00

+0

この質問は回答とみなされます – Drew

答えて

1

私はおそらくそうのように私のwhere句のサブクエリでこれについては行くだろう:

SELECT c.Name 
FROM sales_order o 
INNER JOIN Customer c ON c.Customer_ID = o.Customer_ID 
WHERE Total = (SELECT MAX(Total) FROM sales_order) 
関連する問題

 関連する問題