• 我的目前实现的方案是这样的 定义了数据提取规则和比对项

    关联关系是 N : N

    数据提取规则

    用于不同业务类型的数据提取,例如已付款和已退款可以区分成两种数据提取规则

    每一个规则包含多个比对项

    SQL 执行结果可以为多条

    select a.order_no as order_no from table_1 a where a.CreateTM >= '2022-03-14 00:00:00';
    

    例执行结果为

    order_no
    A0001
    A0002

    比对项

    针对单项指标的比对

    变量双括号标识

    SQL 查询结果必须且仅有一条

    将 SQL 查询结果序列化后带入比对公式

    比对 SQL:

    select a.TotalAmount as a_total_amount,
           b.TotalAmount as b_total_amount
    from table_1 a,
         table_1 b
    where a.order_no = b.order_no
      and i.order_no = '{{ order_no }}';
    

    比对公式:

    SELECT {{ a_total_amount }} = {{ b_total_amount }}
    

    执行流程

    遍历规则数据 将内容替换到比对项 sql 遍历中 进行执行

    替换前

    select a.TotalAmount as a_total_amount,
           b.TotalAmount as b_total_amount
    from table_1 a,
         table_1 b
    where a.order_no = b.order_no
      and i.order_no = 'A0001';
    

    执行结果

    a_total_amount b_total_amount
    30000.00 30000.00

    再将这个结果替换到比对公式

    SELECT 30000.00 = 30000.00
    

    再去执行这个比对公式

    执行结果 1 比对成功 0 比对失败

    实现方案比较简单 可能不是你所需要的

    这个方案需要人工去维护比对项和数据提取规则

  • 真棒 我借鉴一下

  • 哈哈,恭喜你,花泽香菜!预祝新婚快乐

  • 狗蛋儿的 2021 年终总结 at 2022年01月20日

    狗子真棒

  • 无敌哥高产似母🐷

  • 无敌哥牛批

  • 无敌哥牛逼

  • 不太行~~ 我们这 okr 是按月度走的~ 有效果了才给算。 所以得搞一些小工具 轻量级的~