zoukankan      html  css  js  c++  java
  • MiniDao + MYSQL 复杂SQL 客户转化周期统计

    SELECT departid,departname,create_time,
    SUM( IF(conversion_time = ${((startDate?substring(2,7))?replace("-",""))?number},conversion_count,0)) as 'one',
    SUM( IF(conversion_time = ${((startDate?substring(2,7))?replace("-",""))?number} + 1,conversion_count,0)) as 'two',
    SUM( IF(conversion_time = ${((startDate?substring(2,7))?replace("-",""))?number} + 2,conversion_count,0)) as 'three',
    SUM( IF(conversion_time = ${((startDate?substring(2,7))?replace("-",""))?number} + 3,conversion_count,0)) as 'four',
    SUM( IF(conversion_time = ${((startDate?substring(2,7))?replace("-",""))?number} + 4,conversion_count,0)) as 'five',
    SUM( IF(conversion_time = ${((startDate?substring(2,7))?replace("-",""))?number} + 5,conversion_count,0)) as 'six',
    SUM( IF(conversion_time = ${((startDate?substring(2,7))?replace("-",""))?number} + 6,conversion_count,0)) as 'seven',
    SUM( IF(conversion_time > ${((startDate?substring(2,7))?replace("-",""))?number} + 6,conversion_count,0)) as 'more'
    FROM (
    SELECT org_code,
    parentdepartid,
    departid,
    departname,
    create_time,
    conversion_time,
    conversion_period,
    COUNT(id) AS conversion_count
    FROM
    (
    SELECT
    t_s_depart.org_code,
    t_s_depart.parentdepartid,
    t_s_depart.id as departid,
    t_s_depart.departname,
    c.id,
    c.create_date AS lead_create_date,
    public_sea_operation_record.create_date AS customer_create_date,
    DATE_FORMAT( c.create_date, '%y%m' ) as create_time,
    DATE_FORMAT( public_sea_operation_record.create_date, '%y%m' ) AS conversion_time,
    PERIOD_DIFF(DATE_FORMAT(public_sea_operation_record.create_date,'%y%m'),DATE_FORMAT(c.create_date,'%y%m')) + 1 AS conversion_period
    FROM customer c
    INNER JOIN public_sea_operation_record ON c.id = public_sea_operation_record.obj_id AND public_sea_operation_record.operation_type = 5
    AND c.is_deleted = 0 AND c.stage = 2
    <#-- 操作时间:范围 -->
    <#if startDate?? && startDate?has_content>
    <#-- ${startDate?string["yyyy-MM-dd HH:mm:ss"]}-->
    AND c.create_date >= :startDate
    AND c.create_date <= CONCAT(LAST_DAY(DATE_FORMAT(:startDate ,'%Y-%m-%d')),' 23:59:59')
    </#if>
    <#if endDate?? && endDate?has_content>
    <#-- ${endDate?string["yyyy-MM-dd HH:mm:ss"]}-->
    AND c.create_date <= :endDate
    </#if>
    <#-- 操作部门:关联部门 -->
    <#if ( deptIdList )?? && deptIdList?size gt 0 >
    INNER JOIN crm_user_customer ON crm_user_customer.obj_id = c.id AND crm_user_customer.priority = 1
    INNER JOIN t_s_base_user ON crm_user_customer.member_id = t_s_base_user.id
    <#-- 关联用户状态-->
    <#if userStatus?? && userStatus?has_content>
    AND t_s_base_user.status = :userStatus
    </#if>
    INNER JOIN t_s_depart ON t_s_base_user.departid = t_s_depart.id
    AND t_s_depart.id IN ( ${DaoFormat.getInStrs ( deptIdList )} )
    <#else>
    <#-- 关联用户状态-->
    <#if userStatus?? && userStatus?has_content>
    INNER JOIN crm_user_customer ON crm_user_customer.obj_id = c.id AND crm_user_customer.priority = 1
    INNER JOIN t_s_base_user ON crm_user_customer.member_id = t_s_base_user.id
    AND t_s_base_user.status = :userStatus
    </#if>
    </#if>
    ) customer_conversion
    GROUP BY
    departid,
    create_time,
    conversion_time,
    conversion_period
    ) customer_conversion_count
    GROUP BY departid,create_time
    ORDER BY org_code,parentdepartid,departname

  • 相关阅读:
    ImageIO 操作图片
    ThreadLocal
    Mysql表字段命令alter add
    php中的for循环和js中的for循环
    获取当前URL地址和$_GET获取参数
    apache中的vhosts的配置。
    PHP获取前台传过来的时间年份,进行处理。
    php中的htmlspecialchars_decode()函数
    php分页类代码和使用
    cookies插件,记住cookies
  • 原文地址:https://www.cnblogs.com/rgqancy/p/13038519.html
Copyright © 2011-2022 走看看