日期筛选

比如数据表有个字段日期,想查各个年份的上下半年的数据。上半年固定1月1日到6月31日,下半年固定7月1日到12月31日。但筛选框显示比如是2023上半年,2023下半年,应该可以怎么做?

FineReport yzmcGxHZ8466764 发布于 2023-11-3 09:43
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-11-3 09:45(编辑于 2023-11-3 10:00)

你在下拉框中直接写对应的日期,或者写判断就行了

还有你的参数要加年的字段也加上吧?

看修改吧

where 1=1

and 日期字段>='${if(right(cs,3)="上半年",CONCATENATE(left(cs,4),"-01-01'"),CONCATENATE(left(cs,4),"-07-01'"))}

and 日期字段<='${if(right(cs,3)="上半年",CONCATENATE(left(cs,4),"-06-30'"),CONCATENATE(left(cs,4),"-12-31'"))}

数据字典用公式生成

SPLIT(MAPARRAY(RANGE(2021,year(TODAY())),CONCATENATE(CONCATENATE(item,"上半年,"),item,"下半年")),",")

image.png

image.png

image.png

image.png

  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 实际值可以这样写日期范围的吗
    2023-11-03 09:52 
  • CD20160914 CD20160914 回复 yzmcGxHZ8466764(提问者) 可以,但是你的年份不是每年不一样吗,你有年份参数没有?
    2023-11-03 09:52 
  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 回复 CD20160914 没有年份参数
    2023-11-03 09:59 
  • CD20160914 CD20160914 回复 yzmcGxHZ8466764(提问者) 看上面修改吧。改成这样
    2023-11-03 09:59 
  • CD20160914 CD20160914 回复 yzmcGxHZ8466764(提问者) 这样只录入对应的哪个年的上半年与下半年就行了。这样它会自动拼成你要的结果,生成下拉框的用我的公式就行了,如果你想从2010开始,就把2021换成2010就行了
    2023-11-03 10:02 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-11-3 09:46(编辑于 2023-11-3 09:59)

select (case when 日期字段>='2023-01-01' and 日期字段<'2023-07-01'  then '2023上半年' else '2023下半年' end) as [FL],SUM(销量) [SUM_] FROM TABLE WHERE 日期字段>='2023-01-01'  AND 日期字段<='2023-12-31' group by (case when 日期字段>='2023-01-01' and 日期字段<'2023-07-01'  then '2023上半年' else '2023下半年' end )

----------

根据你前面的提问综合一下

select (case when 日期字段>='${CONCATENATE(left(下拉控件,4),"-01-01")}' and 日期字段<'${CONCATENATE(left(下拉控件,4),"-07-01")}' THEN '${CONCATENATE(left(下拉控件,4),"上半年")' else '${CONCATENATE(left(下拉控件,4),"下半年")' end) [fl],sum(销量) [sum_] from table where left(日期字段,4)='${left(下拉控件,4)}' group by (case when 日期字段>='${CONCATENATE(left(下拉控件,4),"-01-01")}' and 日期字段<'${CONCATENATE(left(下拉控件,4),"-07-01")}' THEN '${CONCATENATE(left(下拉控件,4),"上半年")' else '${CONCATENATE(left(下拉控件,4),"下半年")' end

  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 这样的话,到2024年语句不是又得修改一下吗,感觉不行
    2023-11-03 09:50 
  • Z4u3z1 Z4u3z1 回复 yzmcGxHZ8466764(提问者) 补充在上面了
    2023-11-03 09:59 
  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 回复 Z4u3z1 谢谢,不过我想用楼一的,直接在条件后面筛选,不想动条件前面的逻辑。抱歉
    2023-11-03 10:26 
  • Z4u3z1 Z4u3z1 回复 yzmcGxHZ8466764(提问者) 选择适合自己的就行
    2023-11-03 10:27 
最佳回答
0
ID1208Lv6高级互助
发布于2023-11-3 09:52
  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 这个筛选显示还是时间,不是上下半年
    2023-11-03 09:58 
  • ID1208 ID1208 回复 yzmcGxHZ8466764(提问者) 逻辑相同,开始时间和结束时间是用来数据集过滤的字段,页面上可以隐藏
    2023-11-03 10:00 
  • yzmcGxHZ8466764 yzmcGxHZ8466764(提问者) 回复 ID1208 谢谢,可以了
    2023-11-03 10:26 
  • 3关注人数
  • 255浏览人数
  • 最后回答于:2023-11-3 10:00
    请选择关闭问题的原因
    确定 取消
    返回顶部