SQL的一些查询语句

一共四个表格,

求这些查询语句
1、列出订单明细表中订单ID列表,要求去掉所有重复值。
2、列出产品的最高库存量、最低库存量和平均库存量
3、统计订单数量。
4、按货主地区统计订单数量。
5、列出所有订阅大米的客户名称。
6、列出库中的所有订单的客户ID,产品ID和发货日期。
7、按发货日期的顺序,列出所有的所有订单的客户ID,产品ID。
8、显示供应商表中姓“徐”的联系人的地址,城市,电话,公司名称以及邮编。(用三种方法实现)
9、 查找产品表中含有“米”的相关记录。
10、在客户表中查找电话号码含有“010”的记录。(至少用两种方法实现)
11、查找客户“黄雅玲”所订购的产品名称,定购量,及该客户的所在公司,职务,电话。
12、统计客户所订购的订单数,并显示相应的客户名,客户ID,订单数,并且根据订单数进行升序排序。

--1、列出订单明细表中订单ID列表,要求去掉所有重复值。
SELECT DISTINCT 订单ID FROM 订单明细
--2、列出产品的最高库存量、最低库存量和平均库存量
SELECT MAX(库存量) 最高库存量,MIN(库存量) 最低库存量,AVG(库存量) 平均库存量 FROM 产品
--3、统计订单数量。
SELECT COUNT(*) 订单数量 FROM 订单
--4、按货主地区统计订单数量。
SELECT 货主地区,COUNT(*) 订单数量 FROM 订单 GROUP BY 货主地区
--5、列出所有订阅大米的客户名称。
SELECT 公司名称 AS 客户名称 FROM 客户 JOIN 订单 ON 客户.客户ID=订单.客户ID
JOIN 订单明细 ON 订单明细.订单ID=订单.订单ID
JOIN 产品 ON 产品.产品ID=订单明细.订单ID
WHERE 产品名称='大米'
--6、列出库中的所有订单的客户ID,产品ID和发货日期。
SELECT 客户ID,产品ID,发货日期 FROM 订单 JOIN 订单明细 ON 订单明细.订单ID=订单.订单ID
--7、按发货日期的顺序,列出所有的所有订单的客户ID,产品ID。
SELECT 客户ID,产品ID FROM 订单 JOIN 订单明细 ON 订单明细.订单ID=订单.订单ID
ORDER BY 发货日期
--8、显示供应商表中姓“徐”的联系人的地址,城市,电话,公司名称以及邮编。(用三种方法实现)
SELECT 地址,城市,电话,公司名称,邮政编码 FROM 客户 WHERE 联系人姓名 LIKE '徐%'
SELECT 地址,城市,电话,公司名称,邮政编码 FROM 客户 WHERE LEFT(联系人姓名,1)='徐'
SELECT 地址,城市,电话,公司名称,邮政编码 FROM 客户 WHERE CHARINDEX('徐',联系人姓名)>0
--9、 查找产品表中含有“米”的相关记录。
SELECT * FROM 产品 WHERE 产品名称 LIKE '%米%'
--10、在客户表中查找电话号码含有“010”的记录。(至少用两种方法实现)
SELECT * FROM 客户 WHERE 电话 LIKE '%010%'
SELECT * FROM 客户 WHERE CHARINDEX('010',电话)>0
--11、查找客户“黄雅玲”所订购的产品名称,定购量,及该客户的所在公司,职务,电话。
SELECT 产品名称,数量,公司名称,联系人职务,电话 FROM 客户 JOIN 订单 ON 客户.客户ID=订单.客户ID
JOIN 订单明细 ON 订单明细.订单ID=订单.订单ID
JOIN 产品 ON 产品.产品ID=订单明细.订单ID
WHERE 联系人姓名='黄雅玲'
--12、统计客户所订购的订单数,并显示相应的客户名,客户ID,订单数,并且根据订单数进行升序排序。
SELECT 公司名称 AS 客户名,客户ID,COUNT(*) 订单数 FROM 客户 JOIN 订单 ON 客户.客户ID=订单.客户ID
ORDER BY 3
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-08
1,select * from 订单明细表 group by 订单id
2,需求不明确,是查询每个产品的最多和最少,还是总的最多和最少。
3,select count(*) as sum from 订单表
4,先查询有哪些地区 select 货主地区 from 订单表 group by 货主地区
得到的结果集为不重复的货主地区,再循环查询每个地区有哪些订单
select count(*) from 订单表 where 货主地区=“XXX(上一结果集)”
5,select a.客户名称 from 客户表 as a left join 订单表 as b ON a.客户id=b.客户id left join 订单明细表 as c ON b.订单id=c.订单id left join 产品表 as d ON c.产品id=d.产品id where d.产品名称=‘大米’ group by a.客户名称
6,select 客户id from 订单表
select 发货日期 from 订单表
循环订单id的结果集 查询对应的产品id

select 产品id from 订单明细表 where 订单id = ‘xxx(结果集)’
7,在第6条语句上面加一个order by 发货日期即可
8,需求不明确,供应商名称不知道是说的什么
9,select * from 产品表 like %米%
10,select * from 客户表 like %010%
11,select 客户id from 客户表 where 联系人名称=‘黄雅玲’ //查询出客户id
select 订单id from 订单表 where 客户id=‘xxx(上面查询的结果集)’ //查询客户的订单编号

select * from 订单明细表 where 订单id = ‘xx(上面查询的结果集)’ //查询该订单的产品id

select 产品名称,定购量 from 产品表 where 产品id = ‘xx(上面查询的结果集)’
12,
第2个回答  2014-12-08

    select DISTINCT 订单ID from 订单明细

    select max(库存量) , min(库存量), avg(库存量) from 产品

    select count(*) from 订单

    select count(订单ID) from 订单 GROUP BY 货主地区

    select  b.联系人姓名 as  客户名称  from 订单 as a inner join 客户 as b on a.客户ID = b.客户ID   inner join 订单明细 as c on a.订单ID = c.订单_订单ID inner join 产品 as d on c.产品ID = d.产品ID

    where d.产品名称 = ‘大米’

    select a.客户ID,a.发货日期,b.产品ID from 订单 as a inner join 订单明细 as b on a.订单ID = b.订单_订单ID 

    select a.客户ID,b.产品ID from 订单 as a inner join 订单明细 as b on a.订单ID = b.订单_订单ID order by  发货日期 desc

    未看到供应商表。。

    select * from 产品 where 产品名称 like '%米%'

    ①select * from 客户 where 电话 like '%010%' ②select * from 客户 where charindex('010',电话)>0 

    select  b.公司名称,b.联系人职务,b.电话,c.数量,d.产品名称  from 订单 as a inner join 客户 as b on a.客户ID = b.客户ID   inner join 订单明细 as c on a.订单ID = c.订单_订单ID inner join 产品 as d on c.产品ID = d.产品ID where b.联系人姓名= '黄雅玲'

    select a.客户ID,a.联系人姓名 as 客户名,count (a.订单ID) as 订单数  from 订单 as a inner join 客户 as b on a.客户ID = b.客户ID group by 客户名,a.a客户ID  order by 订单数 asc

相似回答