1

//个人理解,不是hw assignment 所以在MS的示例db northwind中有表格:orders o, [order details] od, customers c

  • o 有 orderID、customerID(包括重复项)
  • od 有 orderID(包括重复)、单价、数量、折扣
  • c 有 customerID、companyName

粗略地说,我想加入

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(?)

我的主要问题是不知道如何/如何正确加入。

提前致谢

4

2 回答 2

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`

希望这是你正在寻找的

于 2014-01-24T09:35:44.640 回答
1

假设您根据需要创建了正确的 Select 语句,连接部分应该类似于:

从 Orders o join Order_Detail od on o.orderID = od.orderID join Customer c on o.customerID = c.customerID

连接类型可以是:join, inner join, right/left join. 这取决于您要实现什么,即是否要排除/包含空引用。但是结构是一样的。

于 2014-01-24T08:23:14.410 回答