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

-- 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)
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值