DB2数据库必须掌握的常用语句(二)


  本文标签:DB2数据库 常用语句

  DB2数据库的常用命令之前已经为大家介绍过了,即DB2数据库必须掌握的常用语句(一),接下来就为大家介绍更多的DB2数据库常用语句  。

  1、用存在量词查找没有订货记录的客户名称

  select cust_name

  from customer a

  where not exists

  (select *

  from sales b

  where a.cust_id=b.cust_id)

  2、使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额订货日期不要显示时间,日期格式为yyyy-mm-dd按客户编号排序,同一客户再按订单降序排序输出

  select a.cust_id,cust_name,convert(char(10),order_date,120),tot_amt

  from customer a left outer join sales b on a.cust_id=b.cust_id

  order by a.cust_id,tot_amt desc
 

  

  3、查找16M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用男、女表示

  select emp_name 姓名, 性别= case a.sex when m then 男

  when f then 女

  else 未

  end,

  销售日期= isnull(convert(char(10),c.order_date,120),日期不详),

  qty 数量, qty*unit_price as 金额

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

  where d.prod_name=16M DRAM and d.prod_id=c.prod_id and

  a.emp_no=b.sale_id and b.order_no=c.order_no

  4、查找每个人的销售记录,要求显示销售员的编号、姓名、性别、产品名称、数量、单价、金额和销售日期

  select emp_no 编号,emp_name 姓名, 性别= case a.sex when m then 男

  when f then 女

  else 未

  end,

  prod_name 产品名称,销售日期= isnull(convert(char(10),c.order_date,120),日期不详),

  qty 数量, qty*unit_price as 金额

  from employee a left outer join sales b on a.emp_no=b.sale_id , sale_item c,product d

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

  5、查找销售金额最大的客户名称和总货款

  select cust_name,d.cust_sum

  from customer a,

  (select cust_id,cust_sum

  from (select cust_id, sum(tot_amt) as cust_sum

  from sales

  group by cust_id ) b

  where b.cust_sum =

  ( select max(cust_sum)

  from (select cust_id, sum(tot_amt) as cust_sum

  from sales

  group by cust_id ) c )

  ) d

  where a.cust_id=d.cust_id

  6、查找销售总额少于1000元的销售员编号、姓名和销售额

  select emp_no,emp_name,d.sale_sum

  from employee a,

  (select sale_id,sale_sum

  from (select sale_id, sum(tot_amt) as sale_sum

  from sales

  group by sale_id ) b

  where b.sale_sum <1000

  ) d

  where a.emp_no=d.sale_id

  7、查找至少销售了3种商品的客户编号、客户名称、商品编号、商品名称、数量和金额

  select a.cust_id,cust_name,b.prod_id,prod_name,d.qty,d.qty*d.unit_price

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

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

  c.order_no=d.order_no and a.cust_id in (

  select cust_id

  from (select cust_id,count(distinct prod_id) prodid

  from (select cust_id,prod_id

  from sales e,sale_item f

  where e.order_no=f.order_no) g

  group by cust_id

  having count(distinct prod_id)>=3) h )

  8、查找至少与世界技术开发公司销售相同的客户编号、名称和商品编号、商品名称、数量和金额

  select a.cust_id,cust_name,d.prod_id,prod_name,qty,qty*unit_price

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

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

  c.order_no=d.order_no and not exists

  (select f.*

  from customer x ,sales e, sale_item f

  where cust_name=世界技术开发公司 and x.cust_id=e.cust_id and

  e.order_no=f.order_no and not exists

  ( select g.*

  from sale_item g, sales h

  where g.prod_id = f.prod_id and g.order_no=h.order_no and

  h.cust_id=a.cust_id)

  )

  9、查找表中所有姓刘的职工的工号,部门,薪水

  select emp_no,emp_name,dept,salary

  from employee

  where emp_name like 刘%

  10、查找所有定单金额高于2000的所有客户编号

  select cust_id

  from sales

  where tot_amt>2000

  很高兴与大家分享DB2数据库常用语句,希望能对大家有所帮助  。