写一条SQL语名,里面包含:where,分组,排序,having4个条件、多表连查/高级子查询(主外联);
2013-10-20
展开全部
假设有以下几张表:城市表City( CityID int,--城市id CItyName varchar(20)--城市名)分销商表Contract( ConID int,--分销商id CityID int,--城市ID ConName varchar(20)--分销商名)货物表Goods( GoodsID int,--货物ID GoodsName varchar(20)--货物名)进货表InGoods( GoodsID int,--进货ID ConID int,--分销商ID CityID int,--城市ID InTime DateTime--进货时间)问题如下:请查出在从2009-01-01到2010-06-31期间在城市名为"上海"的进货记录总数少于3的分销商的ID和分销商的名字(包括总记录数为0的记录)。sql如下:select a.ConID,c.ConName,count(a.conID) as num from InGoods a inner join City b on a.CityID=b.CityID left join Contract c on a.ConID=c.ConID where b.CItyName=‘上海’ and a.InTime between '2009-01-01' and '2010-06-31' group by c.ConName having count(a.conID)<3 这里因为要求总记录为0的记录也必须出现.所以在关联分销商表Contract的时候必须用Left join 左连接。如果我的回答对你有帮助,请采纳我的回答。如果还有什么不明白的地方,希望你追问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询