实现两个数据表通过公式联查,跨表查询引用

楼主
我是社区第215098位番薯,欢迎点我头像关注我哦~

在帆软Report(FineReport)中,实现两个数据表通过公式联查的核心思路是通过公式函数在报表设计层关联两个数据集,而非直接通过SQL的JOIN。以下是具体步骤和常见方法:

前提条件

  • 已创建两个独立的数据集(如ds1ds2),分别对应需要联查的两个数据表。

  • 两个数据集存在可关联的字段(如iduser_id等)。

方法1:使用select()函数联查(推荐)

select()函数是帆软中用于从数据集中按条件筛选数据的核心函数,语法为:

数据集名.select(返回字段, 过滤条件, 排序条件)

场景示例

假设ds1是订单表(含order_iduser_idamount),ds2是用户表(含user_idusernamephone)。需将订单表中的user_id关联到用户表的username

步骤:

 

  1. 创建数据集

    • ds1:SQL为SELECT order_id, user_id, amount FROM 订单表

    • ds2:SQL为SELECT user_id, username, phone FROM 用户表

  2. 在报表中插入ds1数据

    ds1的字段(order_iduser_idamount)拖入单元格(如A2、B2、C2)。

  3. 通过select()函数关联ds2的用户名

    在D2单元格输入公式,根据当前行的user_id(即B2)从ds2中获取username

    plaintext
    复制
     
     
    =ds2.select(username, ds2.user_id = B2)
    • user_id唯一,直接返回单个值;若不唯一,返回第一个匹配值(可通过[index]指定位置,如ds2.select(username, ds2.user_id = B2)[0])。

  4. 扩展与填充

    选中A2:D2区域,向下扩展,自动按行关联数据。

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表