一个表根据另外一个表条件获取商品清单

有两个表,A表是销售表,B表是条件表,现在根据B表里设定的日期条件,求B表销售额

如下图,第一条不符合条件,其他符合条件,请问FinereBi如何实现

企业微信截图_17472088819839.png

FineBI fishwoodl 发布于 2025-5-14 15:49 (编辑于 2025-5-14 15:52)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
snrtuemcLv8专家互助
发布于2025-5-14 15:52

这个可以A表后面通过商品名称过滤,跟出B表的日期范围,然后根据后面的日期,做if判断,得出结果

  • fishwoodl fishwoodl(提问者) 不好意思,在finebi做的,如果根据商品名称过滤,因为同一个商品可能设定了两个时间区间,不太好操作啊
    2025-05-14 15:54 
  • snrtuemc snrtuemc 回复 fishwoodl(提问者) BI也可以做左右合并,然后一样根据范围,新增列,做if判断,但是仔细看你的,一个商品有两个对应日期端,这样没法做一一对应,合并对应不上。。。
    2025-05-14 15:59 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2025-5-14 15:53

试试

SELECT A.* FROM A表 A inner join B表 B ON A.商品名称=B.商品名称 AND a.销售日期>=b.执行日期 AND A.销售日期<=b.销售日期

最佳回答
0
用户k6280494Lv6专家互助
发布于2025-5-14 15:55

select a.*,case when a.rq>= b.ksrq and a.rq<=b.jsrq then '是' else '否' end zt  from a

left jion b on a.name=b.name

  • fishwoodl fishwoodl(提问者) fine BI可以操作吗?
    2025-05-14 15:56 
  • 用户k6280494 用户k6280494 回复 fishwoodl(提问者) 你写数据集就可以啊
    2025-05-14 15:56 
  • Z4u3z1 Z4u3z1 回复 用户k6280494 BI也可以写SQL啊
    2025-05-14 16:03 
最佳回答
0
FR-LeonLv4初级互助
发布于2025-5-14 16:33
方法一:使用数据集过滤
  1. 新建数据集,SQL语句为:


SELECT * FROM 销售表 A

WHERE 销售日期 BETWEEN (SELECT 开始日期 FROM 条件表) AND (SELECT 结束日期 FROM 条件表)
方法二:使用单元格过滤
  1. 将两个数据集分别拖入报表:

    • A表(销售表)作为主数据

    • B表(条件表)放在隐藏行/列中

  2. 为销售数据添加过滤条件:

销售日期 >= B2 && 销售日期 <= B3

(假设B2是开始日期,B3是结束日期)

方法三:使用参数联动
  1. 设置模板参数:

    • 开始日期 = B表.开始日期

    • 结束日期 = B表.结束日期

  2. 为销售表添加过滤条件:

销售日期 >= $开始日期 && 销售日期 <= $结束日期

范围查询示例

注意:如果条件表有多行条件,需要使用JOIN或子查询处理

最佳回答
0
小陈PhLv4初级互助
发布于2025-5-14 16:52(编辑于 2025-5-14 16:53)

A表左右合并B表,得到执行日期和结束日期,if判断是否在日期区间里(会吧)。

关于一个商品有多个日期区间,不用管他,你这么做。

因为会有重复记录出现,你按if条件是否排序,“是”的排前面,

然后根据订单号(当然你这里可能是:商品名称,销售日期,销售额)去重,要根据主键去重。

就解决了你一个商品多个时间区间的问题了。

忘采纳!

  • fishwoodl fishwoodl(提问者) 你说的意思我懂,现在这是这几个数据,实际上我的收据量比较大,如果两组数据合并会出现数据膨胀,上万的数据导致运行缓慢,所以不是最优解
    2025-05-15 08:25 
  • 小陈Ph 小陈Ph 回复 fishwoodl(提问者) 那你就把B表拆分成有唯一商品名,不同时间的C表D表E表。然后A表和cde表左右合并,然后分别if判断。再求和if条件?怎么样,机智的我
    2025-05-15 09:06 
  • 5关注人数
  • 57浏览人数
  • 最后回答于:2025-5-14 16:53
    请选择关闭问题的原因
    确定 取消
    返回顶部