mysql 使用select插入多条数据,insert into (1,2,3,4,)select(1,2,3,4)

 SET @yesterday = CURDATE() - INTERVAL n DAY; # 前N天的日期,n通常为1,即昨天

    INSERT IGNORE mob_report.day_coupon_report (
        mdate, 
        id, 
        day_release_coupon_count,
        day_writeoff_coupon_count,
        shop_id,
        shop_name,
        coupon_id,
        coupon_name,
        day_shop_release_coupon_count,
        day_shop_writeoff_coupon_count,
        create_time)
    SELECT 
        @yesterday, 
        NULL,
        (SELECT COUNT(1) FROM mob_coupon.member_receive_coupon nrc WHERE @yesterday = DATE(FROM_UNIXTIME(nrc.create_time))), # 查询前N天优惠券发放总数
        (SELECT COUNT(1) FROM mob_coupon.writeoff_coupon_record wcr WHERE @yesterday = DATE(FROM_UNIXTIME(wcr.create_time))), # 查询前N天优惠券核销总数
        tmp.shop_id,
        tmp.shop_name,
        tmp.coupon_id,
        tmp.coupon_name,
        tmp.day_shop_release_coupon_count,
        tmp.day_shop_writeoff_coupon_count,
        UNIX_TIMESTAMP(NOW())
    FROM (
        # 查询前N天按优惠券分组的发放数量,核销数量
        SELECT
            SUM(day_shop_release_coupon_count) AS day_shop_release_coupon_count,
            SUM(day_shop_writeoff_coupon_count) AS day_shop_writeoff_coupon_count,
            coupon_id,
            `name` AS coupon_name,
            shop_id,
            shop_name
        FROM (
            # 查询前N天按优惠券分组的发放数量,每组核销数量作为0
            SELECT 
                COUNT(1) AS day_shop_release_coupon_count,
                0 AS day_shop_writeoff_coupon_count,
                coupon_id,
                b.name,
                b.shop_id,
                c.shop_name
            FROM mob_coupon.member_receive_coupon a
            LEFT JOIN mob_coupon.coupon_info b ON a.coupon_id = b.id 
            LEFT JOIN mob_base_info.shop_info c ON b.shop_id = c.id
            WHERE @yesterday = DATE(FROM_UNIXTIME(a.create_time))
            GROUP BY a.coupon_id
            UNION ALL
            # 查询前N天按优惠券分组的核销数量,每组发放数量作为0
            SELECT 
                0 AS day_shop_release_coupon_count,
                COUNT(1) AS day_shop_writeoff_coupon_count,
                coupon_id,
                b.name,
                b.shop_id,
                c.shop_name
            FROM mob_coupon.writeoff_coupon_record a
            LEFT JOIN mob_coupon.coupon_info b ON a.coupon_id = b.id 
            LEFT JOIN mob_base_info.shop_info c ON b.shop_id = c.id
            WHERE @yesterday = DATE(FROM_UNIXTIME(a.create_time))
            GROUP BY a.coupon_id
        ) t
        GROUP BY t.coupon_id
    ) tmp;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值