首页 > 数据库技术 > 详细

Oracle小案例(2)

时间:2016-08-02 09:55:59      阅读:275      评论:0      收藏:0      [点我收藏+]

有如下三张表:

销售表:SALE_FACT

 工号   年月   城市   客户   销售额 
C00001 201601 上海 A 1000
C00001 201601 上海 B 5000
C00001 201601 上海 C 300
C00001 201601 上海 D 800
C00004 201601 北京 E 600
C00004 201602 长春 F 300
C00006 201603 沈阳 G 9000
C00007 201604 哈尔滨 H 800
C00008 201605 沈阳 I 2200
C00008 201606 大连 J 1200

 

 

 

 

 

 

 

 

 

 

员工表:DIM_EMP

工号 姓名
C00001 张三
C00002 李四
C00003 王五
C00004 赵六
C00005 林七
C00006 钱八
C00007 宋十
C00008 李白
C00009 陆游
C00010 王林

 

 

 

 

 

 

 

 

 

 

拜访表:VISIT_FACT

工号 年月 客户 拜访次数
C00001 201601 A 5
C00001 201601 B 6
C00001 201601 C 9
C00001 201601 D 22
C00004 201601 E 33
C00004 201602 F 44
C00006 201603 G 100
C00007 201604 H 6
C00008 201605 I 9
C00008 201606 J 8

 

 

 

 

 

 

 

 

 

问题如下:

1.查出每个员工每个月的总销售额

2.查出每个员工每个月的总拜访次数

3.查出每个员工每个城市的总销售额

4.查出全年销售额最大的员工

5.列出全年销售额从大到小排序员工姓名及其全年销售额

6.列出每个员工当年的销售额及其当年总的拜访次数

7.查出拜访次数最多的员工的全年销售额

下面我们先进行前期表和数据的准备

1.创建销售事实表:

CREATE TABLE SALE_FACT(
     EMPNO NVARCHAR2(10)
    ,YEAR_MONTH CHAR(6)
    ,CITY VARCHAR(10)
    ,CLIENT VARCHAR(10)
    ,SALES NUMBER);

 2.往销售事实表中插入数据:

--往销售事实表中插入数据
INSERT INTO SALE_FACT VALUES(‘C00001‘,‘201601‘,‘上海‘,‘A‘,1000);
INSERT INTO SALE_FACT VALUES(‘C00001‘,‘201601‘,‘上海‘,‘B‘,5000);
INSERT INTO SALE_FACT VALUES(‘C00001‘,‘201601‘,‘上海‘,‘C‘,300);
INSERT INTO SALE_FACT VALUES(‘C00001‘,‘201601‘,‘上海‘,‘D‘,800);
INSERT INTO SALE_FACT VALUES(‘C00004‘,‘201601‘,‘北京‘,‘E‘,600);
INSERT INTO SALE_FACT VALUES(‘C00004‘,‘201602‘,‘长春‘,‘F‘,300);
INSERT INTO SALE_FACT VALUES(‘C00006‘,‘201603‘,‘沈阳‘,‘G‘,9000);
INSERT INTO SALE_FACT VALUES(‘C00007‘,‘201604‘,‘哈尔滨‘,‘H‘,800);
INSERT INTO SALE_FACT VALUES(‘C00008‘,‘201605‘,‘沈阳‘,‘I‘,2200);
INSERT INTO SALE_FACT VALUES(‘C00008‘,‘201606‘,‘大连‘,‘J‘,1200);

3.创建员工维度表:

CREATE TABLE DIM_EMP(
  EMPNO NVARCHAR2(10)
 ,EMPNAME NVARCHAR2(10));

4.往员工维度表插入数据:

--往员工维度表插入数据
INSERT INTO DIM_EMP VALUES(‘C00001‘,‘张三‘); 
INSERT INTO DIM_EMP VALUES(‘C00002‘,‘李四‘);
INSERT INTO DIM_EMP VALUES(‘C00003‘,‘王五‘);
INSERT INTO DIM_EMP VALUES(‘C00004‘,‘赵六‘);
INSERT INTO DIM_EMP VALUES(‘C00005‘,‘林七‘);
INSERT INTO DIM_EMP VALUES(‘C00006‘,‘钱八‘);
INSERT INTO DIM_EMP VALUES(‘C00007‘,‘宋十‘);
INSERT INTO DIM_EMP VALUES(‘C00008‘,‘李白‘);
INSERT INTO DIM_EMP VALUES(‘C00009‘,‘陆游‘);
INSERT INTO DIM_EMP VALUES(‘C00010‘,‘王林‘);

5.创建员工拜访事实表:

CREATE TABLE VISIT_FACT(
  EMPNO NVARCHAR2(10)
 ,YEAR_MONTH CHAR(6)
 ,CLIENT NVARCHAR2(10)
 ,VISIT_COUNT NUMBER);

6.往拜访事实表插入数据:

--往拜访事实表插入数据
INSERT INTO VISIT_FACT VALUES(‘C00001‘,‘201601‘,‘A‘,5);
INSERT INTO VISIT_FACT VALUES(‘C00001‘,‘201601‘,‘B‘,6);
INSERT INTO VISIT_FACT VALUES(‘C00001‘,‘201601‘,‘C‘,9);
INSERT INTO VISIT_FACT VALUES(‘C00001‘,‘201601‘,‘D‘,22);
INSERT INTO VISIT_FACT VALUES(‘C00004‘,‘201601‘,‘E‘,33);
INSERT INTO VISIT_FACT VALUES(‘C00004‘,‘201602‘,‘F‘,44);
INSERT INTO VISIT_FACT VALUES(‘C00006‘,‘201603‘,‘G‘,100);
INSERT INTO VISIT_FACT VALUES(‘C00007‘,‘201604‘,‘H‘,6);
INSERT INTO VISIT_FACT VALUES(‘C00008‘,‘201605‘,‘I‘,9);
INSERT INTO VISIT_FACT VALUES(‘C00008‘,‘201606‘,‘J‘,8);

 

Oracle小案例(2)

原文:http://www.cnblogs.com/Jims2016/p/5728137.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!