Mysql常用方法

将两个字段拼接成一个字段方法concat函数:

将日期转换为只要某一段 time_format(时间字段,要转换时间类型)函数:

两个字段数值运算,直接使用运算符,如果一个字段为null使用conalesce(字段,替换成什么数值)函数进行替换为你想要的值

SELECT 
  t.training_date AS trainingDate,
  t.subject AS subject,
  t.training_id AS trainingId,
  CONCAT(TIME_FORMAT(t.start_time, '%H:%i'), '~', TIME_FORMAT(t.end_time, '%H:%i')) AS trainingTime,
  t.capacity - COALESCE(t.appointment_count, 0) AS residueNum,
  t.course_location AS courseLocation
FROM training_schedule t;

在一个查询出来的表格统计某一个字段的总值 totalTodo就是那个新创建的总值  '10000' AS bmRegion,'汇总' AS `region`,给该条数据添加默认值

SELECT
    gnCoding,
    bmRegion,
    `region`,
    total,
    SUM(totalTodo) AS totalTodo
FROM (
    SELECT
        gnCoding,
        bmRegion,
        `region`,
        total,
        totalTodo
    FROM (
        SELECT
            x.jjrj_gn_coding_jjrj AS gnCoding,
            e.bm_region AS bmRegion,
            e.region AS `region`,
            COUNT(e.jjrj_qy_name_jjrj) AS total,
            SUM(IF(x.jjrj_audit_jjrj < 10000 AND x.jjrj_audit_jjrj > 0, 1, 0)) AS totalTodo
        FROM
            jcxx_personnelinformation x
        INNER JOIN
            enterprise_practice_area e ON x.jjrj_qy_bianma_jjrj = e.jjrj_qy_bianma_jjrj
        GROUP BY
            x.jjrj_gn_coding_jjrj,
            e.bm_region
        UNION ALL
        SELECT
            x.jjrj_gn_coding_jjrj AS gnCoding,
            '10000' AS bmRegion,
            '汇总' AS `region`,
            COUNT(e.jjrj_qy_name_jjrj) AS total,
            SUM(IF(x.jjrj_audit_jjrj < 10000 AND x.jjrj_audit_jjrj > 0, 1, 0)) AS totalTodo
        FROM
            jcxx_personnelinformation x
        INNER JOIN
            enterprise_practice_area e ON x.jjrj_qy_bianma_jjrj = e.jjrj_qy_bianma_jjrj
    ) AS subquery
) AS final_result
GROUP BY gnCoding, bmRegion, `region`, total;

原代码

SELECT
    x.jjrj_gn_coding_jjrj AS gnCoding,
    e.bm_region AS bmRegion,
    e.region AS `region`,
    COUNT(e.jjrj_qy_name_jjrj) AS total,
    SUM(IF(x.jjrj_audit_jjrj < 10000 AND x.jjrj_audit_jjrj > 0, 1, 0)) AS totalTodo
FROM
    jcxx_personnelinformation x
INNER JOIN
    enterprise_practice_area e ON x.jjrj_qy_bianma_jjrj = e.jjrj_qy_bianma_jjrj
GROUP BY
    x.jjrj_gn_coding_jjrj,
    e.bm_region;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值