反馈已提交

网络繁忙

使用条件分支获取优秀员工信息

  • 文档创建者:Wendy123456
  • 历史版本:9
  • 最近更新:Wendy123456 于 2024-06-07
  • 1. 概述

    1.1 应用场景

    公司每月定期对员工销量总和进行计算,若销量总和大于 500,则筛选出销售量大于平均值的员工信息,写入优秀员工信息表,进行表扬嘉奖。

    若销量总和小于 500 则筛选出销售量小于平均值的员工信息,写入需要进步员工信息表,区域负责人和对应同学进行沟通,辅助成长。

    1.2 实现思路

    使用参数赋值节点获取员工销量总和,并传递给参数。

    使用条件分支节点判断参数值,若参数值大于等于 500,控制执行 A 下游节点,若参数值小于 500,控制执行 B 下游节点。

    FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「使用条件分支获取优秀员工信息-」。

    2. 示例

    2.1 创建数据库表

    创建一个定时任务,将一个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;

    2.2 表中插入数据

    再将一个SQL脚本节点拖到设计界面,并重命名为为员工销量表插入数据」,跟上游创建员工销量表」节点连接起来。

    SQL 语句的作用:在刚刚新建的这张表里插入一些演示用的数据。

    表结构如下图所示:

    1717728015705918.png

    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,'南京','江苏');

    2.3 获取总销售量

    1)将一个参数赋值节点拖到设计界面,并重命名为获取所有员工的销量总和跟上游为员工销量表插入数据」节点连接起来。

    设置节点的数据来源,SQL 语句的作用:对 sales 表中所有的销售量进行求和得到总销售量。

    SQL 语句如下:

    select 
    sum(sales) as sales 
    from 
    sales

    2)将获取到的总销售量输出为参数,以便后续使用条件分支判断是否将员工信息写入指定数据,如下图所示:

    2.4 优秀员工入库

    1)将一个数据同步节点拖到设计界面,并重命名为销量大于平均值的员工信息入库

    设置节点的数据来源,SQL 语句的作用:筛选出 sales 表中销售量大于平均值的员工数据。

    SQL 语句如下:

    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 表中。字段映射用默认的即可无需改动。

    2.5 待进步员工入库

    1)将一个数据同步节点拖到设计界面,并重命名为销量小于平均值的员工信息入库

    设置节点的数据来源,SQL 语句的作用:筛选出 sales 表中销售量小于平均值的员工数据。

    SQL 语句如下:

    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 表中。字段映射用默认的即可无需改动。

    2.6 设置执行条件判断

    1)将一个条件分支节点拖到设计界面,并重命名为判断销量总和是否大于500」。

    连接上游获取所有员工的销量总和」节点,再连接下游销量大于平均值的员工信息入库」和销量小于平均值的员工信息入库」节点。

    此时点击条件分支节点,可以看到流转到下游的两个分支,可以给这两个分支设置判断条件,决定任务运行时执行下游哪个节点。

    2)对两个分支的条件进行设置,如下图所示:

    2.7 运行任务

    因为销量总和 sales 参数值是 600,所以执行销量大于平均值的员工信息入库分支,而销量小于平均值的员工信息入库分支被跳过。

    销量大于平均值的员工信息入库」数据表 good_user 中,可以查看到写入的数据,如下图所示:

    1717728066742339.png

    附件列表


    主题: 数据开发-定时任务
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持