Navicat下生产报表及自动化处理

本文介绍了如何在Navicat 12.0中制作印度餐厅每日报表,包括使用GROUP_CONCAT函数处理拼接长度问题,新建报表的步骤,以及设置自动化任务触发器以实现定时发送报表邮件。在报表创建过程中,需要注意避免使用创建表的语句,并正确调整字段和格式。
摘要由CSDN通过智能技术生成

下列是我采用Navicat 12.0版本 做每天印度餐厅的报表自动生成报表

1. 打开Navicat编写好程序代码,并保证能正常运行不报错

GROUP_CONCAT函数用于将多个字符串连接成一个字符串,在拼接成字符串时就会存在拼接长度的问题,mysql 默认的拼接最大长度为1024 个字节,由于1024个字节会出现不够用的情况,所以有时需要去根据情况进行修改,方式如下。
MySQL group_concat函数参考链接
由于自己没有在MySQL配置文件中修改group_concat的拼接长度,所以要在函数开头补充修改参数:

#设置最大编排函数长度
SET GLOBAL group_concat_max_len=102400;
SET SESSION group_concat_max_len = 102400;

印度餐厅报表整理的数据整理代码如下:

-- 第一步:建立中间表1,将点法汇总到一列且用文字表示。同时用时间函数筛选最近1年的交易,计算每家店每种点法的具体交易数。
DROP TABLE IF EXISTS middle_list1;
CREATE TABLE IF NOT EXISTS middle_list1 AS
SELECT CONCAT(rice_tag,' ',curry_tag,' ',naan_tag) AS choices,brand_tag,
COUNT(DISTINCT `Order Number`) AS count_order_number
FROM(
SELECT a.*, 
case WHEN a.quantity>0 THEN 1 else 0 END AS rice_flag,
case WHEN a.quantity>0 THEN 1 else 0 END AS curry_flag,
case WHEN a.quantity>0 THEN 1 else 0 END AS naan_flag,
case WHEN a.rice_quantity>0 THEN 'rice' else '' END AS rice_tag,
case WHEN a.curry_quantity>0 THEN 'curry' else ' ' END AS curry_tag,
case WHEN a.naan_quantity>0 THEN 'naan' else ' ' END AS naan_tag
FROM(
SELECT brand_tag,`Order Number`,date,
SUM(Quantity) AS quantity,
SUM(Quantity*`Product Price`) AS total_price,
SUM(CASE WHEN `Item Name`LIKE '%rice%' THEN Quantity*`Product Price` ELSE 0 END) AS rice_sales,
SUM(CASE WHEN `Item Name`LIKE '%rice%' THEN Quantity ELSE 0 END) AS rice_quantity,
SUM(CASE WHEN `Item Name`LIKE '%curry%' THEN Quantity*`Product Price` ELSE 0 END) AS curry_sales,
SUM(CASE WHEN `Item Name`
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值