2010-05-26 50 views
0

所以,我有三個包含以下行的表:Customers(Customer_id和Name),Orders(Customer_id,Product_id,Quantity)和Products(Price)。

如何編寫一個查詢,顯示花費超過1000美元的所有客戶?我必須加入表格嗎?

+2

聞起來像作業 – 2010-05-26 11:19:15

+0

作業?我發誓,我已經看到了這個星球上每個「傻瓜式SQL」網站上的確切問題(和答案)。 – 2010-05-26 11:19:37

回答

2

因爲這是作業,我不會給你答案,只是有關如何得出答案的信息。

您需要包含客戶表,因爲這就是您尋找的客戶。您需要加入與訂單表的彙總,以便您可以瞭解他們訂購的每件產品的數量,並且您需要加入產品表以查找所有這些產品的價格,以便總計它們以確定它們是否花費了超過1000美元。

轉到它。告訴我們你是怎麼做的。

+0

不是功課,而是我已經通過的測試中的一個問題。 我知道我應該加入桌子;但我不知道我需要在這裏使用別名,那就是問題所在。 – 2010-05-26 18:27:57

0
SELECT * FROM customer c JOIN (
    SELECT a.customer_id,SUM(a.quantity*b.price) spent FROM orders a 
    JOIN products b ON b.product_id=a.product_id GROUP BY a.customer_id 
) d ON d.customer_id=c.customer_id WHERE d.spent>1000