您的位置:首页 > 数据库

SQL语句精华集萃(摘抄)(二)

2007-04-23 15:43 225 查看
--31、由sales表中查找出订单金额大于“E0013业务员在1996/10/15这天所接每一张订单的金额”的所有订单。


select *


from sales


where tot_amt>all


(select tot_amt


from sales


where sale_id='E0013'and order_date='1996/10/15')


order by tot_amt




--32、计算'P0001'产品的平均销售单价


select avg(unit_price)


from sale_item


where prod_id='P0001'




--33、找出公司女员工所接的定单


select sale_id,tot_amt


from sales


where sale_id in


(select sale_id from employee


where sex='F')




--34、找出同一天进入公司服务的员工


select a.emp_no,a.emp_name,a.date_hired


from employee a


join employee b


on (a.emp_no!=b.emp_no and a.date_hired=b.date_hired)


order by a.date_hired




--35、找出目前业绩超过232000元的员工编号和姓名。


select emp_no,emp_name


from employee


where emp_no in


(select sale_id


from sales


group by sale_id


having sum(tot_amt)<232000)




--36、查询出employee表中所有女职工的平均工资和住址在"上海市"的所有女职工的平均工资


select avg(salary)


from employee


where sex like 'f'


union


select avg(salary)


from employee


where sex like 'f' and addr like '上海市%'




--37、在employee表中查询薪水超过员工平均薪水的员工信息。


Select * from employee where salary>(select avg(salary) from employee)




--38、找出目前销售业绩超过40000元的业务员编号及销售业绩,并按销售业绩从大到小排序。


Select sale_id ,sum(tot_amt)


from sales


group by sale_id


having sum(tot_amt)>40000


order by sum(tot_amt) desc




--39、找出公司男业务员所接且订单金额超过2000元的订单号及订单金额。


Select order_no,tot_amt


From sales ,employee


Where sale_id=emp_no and sex='M' and tot_amt>2000




--40、查询sales表中订单金额最高的订单号及订单金额。


Select order_no,tot_amt from sales where tot_amt=(select max(tot_amt) from sales)




--41、查询在每张订单中订购金额超过24000元的客户名及其地址。


Select cust_name,addr from customer a,sales b where a.cust_id=b.cust_id and tot_amt>24000




--42、求出每位客户的总订购金额,显示出客户号及总订购金额,并按总订购金额降序排列。


Select cust_id,sum(tot_amt) from sales


Group by cust_id


Order by sum(tot_amt) desc




--43、求每位客户订购的每种产品的总数量及平均单价,并按客户号,产品号从小到大排列。


Select cust_id,prod_id,sum(qty),sum(qty*unit_price)/sum(qty)


From sales a, sale_item b


Where a.order_no=b.order_no


Group by cust_id,prod_id


Order by cust_id,prod_id




--44、查询订购了三种以上产品的订单号。


Select order_no from sale_item


Group by order_no


Having count(*)>3




--45、查询订购的产品至少包含了订单10003中所订购产品的订单。


Select distinct order_no


From sale_item a


Where order_no<>'10003'and not exists (


Select * from sale_item b where order_no ='10003' and not exists


(select * from sale_item c where c.order_no=a.order_no and c.prod_id=b.prod_id))




--46、在sales表中查找出订单金额大于“E0013业务员在1996/11/10这天所接每一张订单的金额”的所有订单,并显示承接这些订单的业务员和该订单的金额。


Select sale_id,tot_amt from sales


where tot_amt>all(select tot_amt from sales where sale_id='E0013' and order_date='1996/11/10')




--47、查询末承接业务的员工的信息。


Select *


From employee a


Where not exists


(select * from sales b where a.emp_no=b.sale_id)




--48、查询来自上海市的客户的姓名,电话、订单号及订单金额。


Select cust_name,tel_no,order_no,tot_amt


From customer a ,sales b


Where a.cust_id=b.cust_id and addr='上海市'




--49、查询每位业务员各个月的业绩,并按业务员编号、月份降序排序。


Select sale_id,month(order_date), sum(tot_amt)


from sales


group by sale_id,month(order_date)


order by sale_id,month(order_date) desc




--50、求每种产品的总销售数量及总销售金额,要求显示出产品编号、产品名称,总数量及总金额,并按产品号从小到大排列。


Select a.prod_id,prod_name,sum(qty),sum(qty*unit_price)


From sale_item a,product b


Where a.prod_id=b.prod_id


Group by a.prod_id,prod_name


Order by a.prod_id




--51、查询总订购金额超过’C0002’客户的总订购金额的客户号,客户名及其住址。


Select cust_id, cust_name,addr


From customer


Where cust_id in (select cust_id from sales


Group by cust_id


Having sum(tot_amt)>


(Select sum(tot_amt) from sales where cust_id='C0002'))




--52、查询业绩最好的的业务员号、业务员名及其总销售金额。


select emp_no,emp_name,sum(tot_amt)


from employee a,sales b


where a.emp_no=b.sale_id


group by emp_no,emp_name


having sum(tot_amt)=


(select max(totamt)


from (select sale_id,sum(tot_amt) totamt


from sales


group by sale_id) c)




--53、查询每位客户所订购的每种产品的详细清单,要求显示出客户号,客户名,产品号,产品名,数量及单价。


select a.cust_id, cust_name,c.prod_id,prod_name,qty, unit_price


from customer a,sales b, sale_item c ,product d


where a.cust_id=b.cust_id and b.order_no=c.order_no and c.prod_id=d.prod_id




--54、求各部门的平均薪水,要求按平均薪水从小到大排序。


select dept,avg(salary) from employee group by dept order by avg(salary)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: