1.为了使用ORG_ID,由于OCRM_F_MM_MKT_PLAN a 没有ORG_ID,但是OCRM_F_MM_EXECUTE_INST_DESC d 表里面有,可以使a表连接b表,创建临时表t。

select t.PLAN_S  AS MARKET_PLAN_COUNT,t.SUM_PLAN AS PLAN_ACC_COUNT  
 from (select count(a.MKT_PLAN_STAT) as PLAN_S,sum(case when  a.MKT_PLAN_STAT='3' then 1 else 0 end) as SUM_PLAN from OCRM_F_MM_MKT_PLAN a left join OCRM_F_MM_EXECUTE_INST_DESC d on (d.PLAN_ID=a.PLAN_ID))t;

2.

select  f.ORG_ID,f.ORG_NAME,t.MARKET_PLAN_COUNT,t.PLAN_ACC_PER,t.PLAN_ACC_COUNT,
    b.MARKET_ACT_COUNT,b.ACT_ACC_COUNT,b.ACT_ACC_PER,c.OPPOR_COUNT,
    c.OPPOR_ACC_COUNT,c.OPPOR_ACC_PER
     from( select d.org_id,count(a.MKT_PLAN_STAT) as MARKET_PLAN_COUNT,
     sum(case when  a.MKT_PLAN_STAT='3' then 1 else 0 end)  as  PLAN_ACC_COUNT,
     ROUND(CAST(sum(case when  a.MKT_PLAN_STAT='3' then 1 else 0 end) AS DOUBLE) / count(a.MKT_PLAN_STAT)*100,4) as PLAN_ACC_PER
      from OCRM_F_MM_MKT_PLAN a left join OCRM_F_MM_EXECUTE_INST_DESC d on (d.PLAN_ID=a.PLAN_ID) group by org_id)t  
      left join (select CREATE_ORG,count( MKT_ACTI_STAT) as  MARKET_ACT_COUNT,sum(case when MKT_ACTI_STAT='4' then 1 else 0 end)  AS ACT_ACC_COUNT,
     ROUND( sum(case when MKT_ACTI_STAT='4' then 1 else 0 end)/count( MKT_ACTI_STAT)*100,4) as ACT_ACC_PER
       from OCRM_F_MK_MKT_ACTIVITY group by CREATE_ORG) b on (t.ORG_ID=b.CREATE_ORG)
       left join
        (
        select CREATE_ORG_ID, count(OPPOR_STAT) as OPPOR_COUNT,  sum(case when OPPOR_STAT=7 then 1 else 0 end)  + sum(case when OPPOR_STAT= 8  then 1 else 0 end)   AS OPPOR_ACC_COUNT,
      ROUND(CAST( ( sum(case when OPPOR_STAT=7 then 1 else 0 end)  + sum(case when OPPOR_STAT= 8  then 1 else 0 end)) AS DOUBLE)/count(OPPOR_STAT) *100,4)as OPPOR_ACC_PER  from OCRM_F_MM_MKT_BUSI_OPPOR group by CREATE_ORG_ID) c on (b.CREATE_ORG=c.CREATE_ORG_ID)
       left join ADMIN_AUTH_ORG f on (c.CREATE_ORG_ID=f.ORG_ID)

3.统计状态为3,3代表成功的,把3看做1,然后累加1,最后得到表里面有多少个3

select count(a.MKT_PLAN_STAT) as MARKET_PLAN_COUNT,  sum(case when  a.MKT_PLAN_STAT='3' then 1 else 0 end)  as  PLAN_ACC_COUNT from OCRM_F_MM_MKT_PLAN a;

4.统计查找客户经理名称,编号,这个客户经理营销计划数量,完成数量,完成率以及营销活动数量,完成数量,完成率以及商机数量,完成数量,完成率,以及这个客户经理的所属机构,机构号。

select
    f.CUST_MANAGER_ID,f.CUST_MANAGER_NAME,
    t1.MARKET_PLAN_COUNT,t1.PLAN_ACC_COUNT,t1.PLAN_ACC_PER,     
    t2.MARKET_ACT_COUNT,t2.ACT_ACC_COUNT,t2.ACT_ACC_PER,
    t3.OPPOR_COUNT,t3.OPPOR_ACC_COUNT,t3.OPPOR_ACC_PER,
    g.ORG_ID,g.ORG_NAME  
    from  (
      SELECT
            b.EXECUTOR,
            COUNT(a.MKT_PLAN_STAT) AS MARKET_PLAN_COUNT,
            SUM(
                CASE
                    WHEN a.MKT_PLAN_STAT='3'
                    THEN 1
                    ELSE 0
                END) AS PLAN_ACC_COUNT,
            ROUND( CAST(SUM(
                CASE
                    WHEN a.MKT_PLAN_STAT='3'
                    THEN 1
                    ELSE 0
                END) AS DOUBLE) / COUNT(a.MKT_PLAN_STAT)*100,4) AS PLAN_ACC_PER
        FROM
          OCRM_F_MM_MKT_PLAN a
        LEFT JOIN OCRM_F_MM_PLAN_CUST b
        ON
            (
                b.PLAN_ID=a.PLAN_ID
            )
        GROUP BY
            EXECUTOR ) t1
       left join
        ( SELECT
            d.HOST_MGR_ID,
            COUNT( MKT_ACTI_STAT) AS MARKET_ACT_COUNT,
            SUM(
                CASE
                    WHEN MKT_ACTI_STAT='4'
                    THEN 1
                    ELSE 0
                END) AS ACT_ACC_COUNT,
            ROUND( SUM(
                CASE
                    WHEN MKT_ACTI_STAT='4'
                    THEN 1
                    ELSE 0
                END)/COUNT( MKT_ACTI_STAT)*100,4) AS ACT_ACC_PER
        FROM
            OCRM_F_MK_MKT_ACTIVITY c left join  OCRM_F_MK_ACTI_CUSTOMER d on(c.MKT_ACTI_ID=d.MKT_ACTI_ID)
        GROUP BY
            d.HOST_MGR_ID) t2 on (t1.EXECUTOR=t2.HOST_MGR_ID)
       left join
             ( SELECT
            e.CREATER_ID,
            COUNT(OPPOR_STAT) AS OPPOR_COUNT,
            SUM(
                CASE
                    WHEN OPPOR_STAT=7
                    THEN 1
                    ELSE 0
                END) + SUM(
                CASE
                    WHEN OPPOR_STAT= 8
                    THEN 1
                    ELSE 0
                END) AS OPPOR_ACC_COUNT,
            ROUND(CAST( ( SUM(
                CASE
                    WHEN OPPOR_STAT=7
                    THEN 1
                    ELSE 0
                END) + SUM(
                CASE
                    WHEN OPPOR_STAT= 8
                    THEN 1
                    ELSE 0
                END)) AS DOUBLE)/COUNT(OPPOR_STAT) *100,4)AS OPPOR_ACC_PER
        FROM
            OCRM_F_MM_MKT_BUSI_OPPOR e
        GROUP BY
              e.CREATER_ID) t3 on (t2.HOST_MGR_ID=t3.CREATER_ID)
      left join
             OCRM_F_CM_CUST_MGR_INFO f on (t3.CREATER_ID=f.CUST_MANAGER_ID)
     left join ADMIN_AUTH_ORG g on (f.AFFI_INST_ID=g.ORG_ID)

DB2学习的更多相关文章

  1. db2学习笔记

    a.服务端安装 v11.1_win64_expc.zip 官网下载 b.客户端安装 Toad for DB2 Freeware 6.1 百度找找 .建数据库 create database HRA_G ...

  2. DB2 学习--(1)--安装教程

    db2 linux 安装部署 1 解压文件 tar -zxvf db2_v101_linuxx64_expc.tar.gz 2 切换路径 cd expc/ 3 启动安装程序 ./db2_install ...

  3. DB2学习总结(1)——DB2数据库基础入门

    DB2的特性 完全Web使能的:可以利用HTTP来发送询问给服务器. 高度可缩放和可靠:高负荷时可利用多处理器和大内存,可以跨服务器地分布数据库和数据负荷:能够以最小的数据丢失快速地恢复,提供多种备份 ...

  4. DB2学习笔记备忘 2018.5.9

    DB2安装的时候选择了和系统用户一致的选项,然后登陆的时候,连接的时候输入的就是计算机用户的用户名和密码. 1.3 DB2数据库体系结构 系统 一个系统表示DB2的一个安装.在一个由很多及其组成的网络 ...

  5. db2学习笔记--数据类型对表的影响

    创建表的时为列选择合适的数据类型,可以提高数据库性能. 1.选择合适的数据类型,避免出现数据类型转换.例如日期,有人使用字符串来存放日期.时间戳,最后我们还要在程序中使用to_date做数据类型转换, ...

  6. DB2数据库常用命令数据库学习

    DB2数据库常用命令数据库学习你可以用 get snapshot for locks on XXX 看是那个表锁了,再从相关的操作去查原因吧 db2pd -d 库名 -locks和db2pd -d 库 ...

  7. 学习笔记之DB2 9 Fundamentals 730

    Sequence中cache的影响,每新建一个连接,next value值增加increment * cache.如果加上order,则会按顺序生成值. increment cache ; Conne ...

  8. DB2的基础指令 学习笔记

    =======DB2基础指令======= 1.打开数据库db2 connect to 数据库名;2.查看数据库中有哪些表db2 list tables ;3.查看数据库中的表结构db2 descri ...

  9. DB2导入导出 学习笔记

    db2pd -osinfodb2mtrk -i -d (for aix)db2 get dbm cfg show detaildb2 get db cfg show detaildb2 get sna ...

随机推荐

  1. SQL 集合(笔记)

    ——SQL是关于集合的 oracle是关系型数据,其中的数据表都是有一定规律的数据的一个个集合,所以在使用SQL时,如果能按照集合的思路来进行时会节省很多效率,也鞥让语句更加的清晰明了. 1.四个集合 ...

  2. 九度oj 1525 子串逆序打印

    原题链接:http://ac.jobdu.com/problem.php?pid=1525 字符串简单题,注意开有结尾有空格的情况否则pe or wa #include<algorithm> ...

  3. JVM规范小结

    JVM规范组成: 1. 字节码(ByteCode): 以Class或Interface为基本单位, 具有固定结构. 2. 指令集(InstructionSet): 每个指令用一个字节表示, 最多256 ...

  4. 找到一个学习bootstrap的好网站

    http://www.w3cschool.cc/bootstrap/bootstrap-css-overview.html

  5. 为iPhone6设计自适应布局

    Apple从iOS6加入了Auto Layout后开始就比较委婉的开始鼓励.建议开发者使用自适应布局,但是到目前为止,我感觉大多数开发者一直在回避这个问题,不管是不是由于历史原因造成的,至少他们在心底 ...

  6. [转]WinExec、ShellExecute和CreateProcess及返回值判断方式

    [转]WinExec.ShellExecute和CreateProcess及返回值判断方式 http://www.cnblogs.com/ziwuge/archive/2012/03/12/23924 ...

  7. mysql查询重复

    select * from tablename where id in (    select id from tablename    group by id    having count(id) ...

  8. DNS劫持(网页打不开的解决方法)

    我们上网,必不可少的就是DNS,在这里先介绍下DNS的相关知识. DNS 是域名系统 (Domain NameSystem) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主 ...

  9. c++中头文件include规则浅析[译]

    英文原文地址 在开发大型的软件项目时,头文件需要得到恰当的管理,甚至在c中也会面临这种问题,当我们用c++开发时,头文件的管理会变得更复杂,更加耗费我们的时间去管理,下面我将讲一些包含规则来简化这个苦 ...

  10. Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) D Bear and Two Paths

    题目链接: http://codeforces.com/contest/673/problem/D 题意: 给四个不同点a,b,c,d,求是否能构造出两条哈密顿通路,一条a到b,一条c到d. 题解: ...