2014-01-24 20 views
1

//個人的理解,而不是硬件分配 所以從MS樣本數據庫羅斯文有表:訂單O,[訂單詳細信息] OD,客戶ÇSQL查詢多個表使用JOIN - 羅斯文

  • O具有的orderID,的customerID(增量式兩份)
  • OD具有的orderID(增量重複),單價,數量,折
  • c具有的customerID,公司名稱

大致SPEA王, 我想加入上

o.customerID = c.customerID; selecting companyName /// 
      join on o.orderID = od.orderID; selecting unitprice, quantity, discount 

我的最終目標是

sum(q (up - d)) AS 'Order Total' group by od.orderID then 
        sum(Order Total) group by companyName(?) 

我的主要問題是不知道如何/什麼正確雖然加入。

在此先感謝

+0

你能加樣的結果我也無法理解你想要什麼 –

回答

1

假設你創建正確的Select語句,你需要連接的一部分應該是這樣的:

從訂單o在o.orderID = od.orderID 加入Order_Detail OD加入客戶c上o.customerID = c.customerID

加入類型可以是:join,inner join,right/left join。這取決於你想要存檔什麼,即如果你想排除/包含空引用。但結構是一樣的。

1

SQL Fiddle

SELECT comp.`company_name` AS 'company',COUNT(DISTINCT o.id_sales_order) AS 'total_orders',SUM(`unit_price`) AS 'grand_total' 
FROM sales_order AS o 
LEFT JOIN sales_order_item AS od ON od.fk_sales_order = o.id_sales_order 
LEFT JOIN customer AS c ON c.id_customer = o.fk_customer 
LEFT JOIN company AS comp ON comp.id_company = c.fk_company_id 
GROUP BY comp.`company_name` 

希望退房的情況下,你正在尋找這什麼