根据每行单元格不同的日期值,查询出每行的数据可以实现吗?

一般在一次查询中,SQL语句的WHERE条件只能使用固定的日期值吧?

能否根据每行数据不同的日期值,去分别查询出后面的数据呢?

帆软可以做到吗。

----------------------------------------------------------

image.png

我的表名是"_SYS_BIC"."CB.AL.YW/ZAL_SALES_DETAIL_MAIN" ,下面简称A表;

E1和E2的数据,是取在A表中查询日期C1 ≤ "日期字段CALDAY≤ B1的销售;

E3和E4的数据,是取在A表中查询日期D1 ≤ "日期字段CALDAY≤ D1+A1天数;

以第一行举例:E1 or E2的查询语句应为:

SELECT * FROM A表 WHERE DAY ≥ '20231204' AND DAY ≤ 20231211'

以第一行举例:E3 or E4的查询语句应为:

SELECT * FROM A WHERE DAY ≥ '20221211' AND DAY ≤ 20221218'

不知道怎么能让SQL语句知道,我是取单元格的值作为WHERE条件

具体写法是什么? 或者有没有其它方式。  

1:SQL函数;          (使用无效)

2:数据集过滤          (使用无效)

3:数据集参数注入   (使用无效)

我的SQL语句是:

 SELECT ZICZS0000,SUM(ZIFXAV010) AS JE,

 SUM(ZIFXAJ022) AS JS,SUM(ZIFXAW023) AS KZ

 FROM "_SYS_BIC"."CB.AL.YW/ZAL_SALES_DETAIL_MAIN" 

 WHERE 

 CALDAY BETWEEN '${date1}' AND '${date2}' 

 AND ZICYY0010 = '06'

 AND ZICZB0075 <> 'N' 

 AND ZICXA0005  = 'Y'

 AND ZICZA0001 IN ('Z002','Z003','Z009')

 AND ZICZA0003 NOT IN ('1110','1111')

 AND ZICZA0012 <> 'K08'

 GROUP BY ZICZS0000

 ORDER BY ZICZS0000

----------------------------

我把参数${date1}和${date1}的值换成日期单元格的值了,但是查询不出数据。。

FineReport 学习帆软ing 发布于 2023-12-14 10:39
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-12-14 10:41(编辑于 2023-12-14 10:41)

三种方法都可以,检查日期格式是否一致

最好传模板(非内置数据集的)

---------

能远程更好

最佳回答
0
用户k6280494Lv6专家互助
发布于2023-12-14 10:39(编辑于 2023-12-14 10:43)

sql函数就可以

你要是不可以,就说明你没写对sql

https://help.fanruan.com/finereport/doc-view-846.html 

sql("FRDemo","select sum(xs) from A where day>='"+E1+"' and day<='"+E2+"'",1,1)

  • 2关注人数
  • 196浏览人数
  • 最后回答于:2023-12-14 10:43
    请选择关闭问题的原因
    确定 取消
    返回顶部