连接查询综合应用
例题1
统计每一家公交公司所属线路的站点总数
select company 公司, count(*) 总站数
from line_station LS, line l
where ls.lineNo=l.lineNo groub by company order by count(*)
例题2
计算经过站点“解放大道古田四路”的公交线路的数量以及营运车辆数量。
select count(*) 线路数, sum(number) 营运车辆数量
from line_station ls, line l
where ls.lineNo=l.lineNo and station='解放大道古田四路'
例题3
计算每条公交线路的司机人数,按司机人数降序显示。
select lineNo 线路号, count(*) 司机数
from driver d, vehicle v, line l
where d.driverID=v.driverID and v.lineID=l.lineID
group by lineNo order by 司机数 desc
例题4
统计每件商品的销售数量和销售金额,要求按照销售量和销售金额升序显示商品名,销售量和销售金额。
select g.goodsName , sum(od.quantity) 销售量, sum(od.quanitiy*g.unitPrice) 销售金额
from goods g
left join ordersdetail od on g.goodsID=od.goodsID
group by g.goodsID order by 销售量, 销售金额
执行效果如下~
*例题5
计算每个订单的金额,要求按照订单下单日期升序和订单金额降序显示订单ID,订单下单日期,订单金额和顾客姓名。
select o.ordersID , ordersDate 下单日期,
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
总结
根据题目要求选择更简单解决问题的方法,外连接,内连接,简单连接,选对方法可以更快完成题目要求。