公司每月定期对员工销量总和进行计算,若销量总和大于 500,则筛选出销售量大于平均值的员工信息,写入优秀员工信息表,进行表扬嘉奖。
若销量总和小于 500 则筛选出销售量小于平均值的员工信息,写入需要进步员工信息表,区域负责人和对应同学进行沟通,辅助成长。
使用参数赋值节点获取员工销量总和,并传递给参数。
使用条件分支节点判断参数值,若参数值大于等于 500,控制执行 A 下游节点,若参数值小于 500,控制执行 B 下游节点。
FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「使用条件分支获取优秀员工信息-」。
创建一个定时任务,将一个「SQL脚本」节点拖到设计界面,并重命名为「创建员工销量表」。
SQL 语句的作用:数据库中新建一张员工销量统计表 slaes,主键是 id。
SQL 建表语句如下;
drop TABLE sales;CREATE TABLE IF NOT EXISTS `sales` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `sales` varchar(255) DEFAULT NULL, `city` varchar(255) DEFAULT NULL, `prov` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8;ALTER TABLE sales AUTO_INCREMENT=1;
若上面 SQL 语句报错,可尝试下面语句:
DROP TABLE IF EXISTS sales;CREATE TABLE IF NOT EXISTS sales (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(255) DEFAULT NULL,sales VARCHAR(255) DEFAULT NULL,city VARCHAR(255) DEFAULT NULL,prov VARCHAR(255) DEFAULT NULL,PRIMARY KEY (id)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
再将一个「SQL脚本」节点拖到设计界面,并重命名为「为员工销量表插入数据」,跟上游「创建员工销量表」节点连接起来。
SQL 语句的作用:在刚刚新建的这张表里插入一些演示用的数据。
表结构如下图所示:
SQL 语句如下:
INSERT INTO `sales` VALUES (null, '张飞云', 45,'苏州','江苏');INSERT INTO `sales` VALUES (null, '李亮', 50,'无锡','江苏');INSERT INTO `sales` VALUES (null, '王大林', 70,'常州','江苏');INSERT INTO `sales` VALUES (null, '刘再清', 30,'无锡','江苏');INSERT INTO `sales` VALUES (null, '曹子云', 80,'苏州','江苏');INSERT INTO `sales` VALUES (null, '张强', 60,'常州','江苏');INSERT INTO `sales` VALUES (null, '王小明', 40,'无锡','江苏');INSERT INTO `sales` VALUES (null, '陈俊', 100,'常州','江苏');INSERT INTO `sales` VALUES (null, '周旭', 50,'南京','江苏');INSERT INTO `sales` VALUES (null, '柳一', 75,'南京','江苏');
1)将一个「参数赋值」节点拖到设计界面,并重命名为「获取所有员工的销量总和」,跟上游「为员工销量表插入数据」节点连接起来。
设置节点的数据来源,SQL 语句的作用:对 sales 表中所有的销售量进行求和得到总销售量。
select sum(sales) as sales from sales
2)将获取到的总销售量输出为参数,以便后续使用条件分支判断是否将员工信息写入指定数据,如下图所示:
1)将一个「数据同步」节点拖到设计界面,并重命名为「销量大于平均值的员工信息入库」。
设置节点的数据来源,SQL 语句的作用:筛选出 sales 表中销售量大于平均值的员工数据。
SELECT sales.* FROM ( SELECT prov, avg( sales ) AS avg_sales FROM sales GROUP BY prov ) avg LEFT JOIN sales ON avg.prov = sales.prov WHERE sales.sales >= avg.avg_sales
2)将销售量大于平均值的员工数据保存到 good_user 表中。字段映射用默认的即可无需改动。
1)将一个「数据同步」节点拖到设计界面,并重命名为「销量小于平均值的员工信息入库」。
设置节点的数据来源,SQL 语句的作用:筛选出 sales 表中销售量小于平均值的员工数据。
SELECT sales.* FROM ( SELECT prov, avg( sales ) AS avg_sales FROM sales GROUP BY prov ) avg LEFT JOIN sales ON avg.prov = sales.prov WHERE sales.sales < avg.avg_sales
2)将销售量小于平均值的员工数据保存到 remind_user 表中。字段映射用默认的即可无需改动。
1)将一个「条件分支」节点拖到设计界面,并重命名为「判断销量总和是否大于500」。
连接上游「获取所有员工的销量总和」节点,再连接下游「销量大于平均值的员工信息入库」和「销量小于平均值的员工信息入库」节点。
此时点击条件分支节点,可以看到流转到下游的两个分支,可以给这两个分支设置判断条件,决定任务运行时执行下游哪个节点。
2)对两个分支的条件进行设置,如下图所示:
因为销量总和 sales 参数值是 600,所以执行「销量大于平均值的员工信息入库」分支,而「销量小于平均值的员工信息入库」分支被跳过。
在「销量大于平均值的员工信息入库」数据表 good_user 中,可以查看到写入的数据,如下图所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
Submitted successfully
Network busy