柱状图系列名动态生成问题

有一个年份参数$yearChoose

(1)用户未选择该参数时,柱状图的系列名生成当前年份和上一年份,即2025、2024;

(2)用户选择参数值为自定义时,柱状图的系列名生成当前年份和上一年份,即2025、2024;

(3)用户选择参数值为2023/2024/2025时,柱状图的系列名生成用户所选年份和所选年份的上一年份,例如选择2024时,柱状图的系列名生成年份2024、2023;

如何使用公式实现该需求?

image.png

数据格式如下:

LAST_VALUES为上一年份数据,NOW_VALUES为当前年份数据

image.png

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

感谢提供思路

公式如下:

IF( $$$="LAST_VALUES", IF(LEN($yearChoose)=0||$yearChoose="自定义",YEAR(TODAY())-1,CONCATENATE("",FORMAT($yearChoose,"###0")-1)), IF(LEN($yearChoose)=0||$yearChoose="自定义",YEAR(TODAY()),$yearChoose) )

image.png

image.png

最佳回答
0
华莉星宸Lv7资深互助
发布于2025-1-16 14:29

你的实际数据格式是什么样的?

年份是一个字段么

  • LAN LAN(提问者) 问题完善了,数据字段只有月份
    2025-01-16 14:32 
  • 华莉星宸 华莉星宸 回复 LAN(提问者) 你应该还有个年份字段吧
    2025-01-16 14:33 
最佳回答
0
用户k6280494Lv6资深互助
发布于2025-1-16 14:32(编辑于 2025-1-16 14:33)

数据集判断呗

select * from a where 1=1

${if(len(yearChoose)=0||yearChoose='自定义',"and year>='"+year(today())-1+"'","and year >= '"+yearChoose-1+"' and year <= '"+yearChoose+"'")}

group by year

  • LAN LAN(提问者) 数据集用的是存储过程的话该咋弄?
    2025-01-16 14:34 
  • 用户k6280494 用户k6280494 回复 LAN(提问者) 那需要把参数传到存储过程,在存储过程判断
    2025-01-16 14:38 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2025-1-16 14:33(编辑于 2025-1-16 14:34)

SELECT * FROM TABLE WHERE 1=1 ${IF(OR(yearChoose="自定义",LEN(yearChoose)=0)," AND year>='"+year(today())-1+"' and year<='"+year(today())+"'"," and year>='"+yearChoose-1+"' and year<='"+yearChoose+"'")}

-----------

只有月份SQL都查不出来

  • LAN LAN(提问者) 数据集用的是存储过程的话该咋弄?
    2025-01-16 14:34 
  • 2关注人数
  • 32浏览人数
  • 最后回答于:2025-1-16 14:52
    请选择关闭问题的原因
    确定 取消
    返回顶部