连接查询综合应用
综合使用连接查询、聚合函数和分组查询,可以实现很多复杂的查询需求。
例题:
(1)统计每件商品的销售数量和销售金额,要求按照销售量和销售金额升序显示商品名,商品量和销售金额。
(2)计算每个订单的金额,要求按照订单下单日期升序和订单金额降序显示订单ID订单下单日期订单金额和顾客姓名。
第一题
select g.goodName 商品名,sum(od.quantily) 销售量,sum(od.quantily*g.unitPrice) 销售金额
from goods g left join ordersdetail od on g.goodsID=od.goodsID
group by g.goodsID order by 销售量, 销售金额
分析:由于需要统计每件商品的销售数量和销售金额,即便某种商品没有被订购,也需要显示,所以可以采用左连接的方式,依次建立商品表和订单明细表的联系。
第二题
select o.ordersID 订单,o.orderDate 下单日期,sum(od.quantity*g.unitPrice) 订单金额,c.cName 客户名
from orders o.ordersdetail od.goods g.customer c
where o.ordersID=od.ordersID and od.goodsID=g.goodsID and o.customerID=c.customerID group by o.ordersID order by 下单日期,订单日期, desc;
分析:需要连接订单表、订单表明细、商品表和客户表。