表格调用数据公式的问题

有一个单元格需要调用数据库里某个表完整一个月的数据,例如A2单元格填入2020-4,那么B2单元格需要一个什么样的公式才能调用出数据库里另一个表里2020-4-1到2020-4-30这30天的数据并求和显示在B2单元格里呢?

FineReport zhangx172 发布于 2020-4-21 21:50
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2020-4-22 08:11(编辑于 2020-4-22 14:48)

使用sql()函数

sql("DBName","select sum(求和字段名称) from 表  where CONVERT(varchar(6) , 时间字段名称, 112 )= '"+format(A2,"yyyyMM")+"'")

mysql时间函数DATE_FORMAT('20191010','%Y-%m-%d');

sql("DBName","select sum(求和字段名称) from 表  where DATE_FORMAT(时间字段名称,'%Y%m')= '"+format(A2,"yyyyMM")+"'")

SQL(connectionName,sql,columnIndex,rowIndex):返回的数据是从 connectionName 数据库中获取的 SQL 语句的表中的第 columnIndex 列第 rowIndex 行所对应的元素。

connectionName:数据库名,字符串形式,需要用引号如"FRDemo";

sql:SQL 语句或者数据库存储过程,字符串形式,传参数、条件等可以在此拼接实现;

columnIndex:列序号,整型;

rowIndex:行序号,整型。

注:行序号可以不写,这样返回值为数据列。


  • zhangx172 zhangx172(提问者) sql(\"JDBC\",\"select sum(总出水量(m3)) from 水量 where CONVERT(varchar(6) , 日期, 112 )= \'\"+format(B3,\"yyyyMM\")+\"\'\") 这样哪里有问题吗?怎么不对呢
    2020-04-22 13:24 
  • snrtuemc snrtuemc 回复 zhangx172(提问者) 你的是什么数据库
    2020-04-22 13:25 
  • zhangx172 zhangx172(提问者) 回复 snrtuemc mysql
    2020-04-22 14:43 
  • snrtuemc snrtuemc 回复 zhangx172(提问者) sql(\"JDBC\",\"select sum(总出水量(m3)) from 水量 where DATE_FORMAT(日期,\'%Y%m\')= \'\"+format(B3,\"yyyyMM\")+\"\'\")
    2020-04-22 14:49 
  • zhangx172 zhangx172(提问者) 回复 snrtuemc 还是不对,我就不用后面,只填入SQL(\"JDBC\",\"select * from 水量\") 预览也直接就是NAME?,这个JDBC数据库名就是指的数据连接里那个吧?那应该是没错的,但总是不对
    2020-04-22 16:32 
最佳回答
1
yiyemeiyingLv4高级互助
发布于2020-4-21 22:06

B2单元格用=sql(),通过获取A2单元格输入的值自动运算出结果,sql如何写就不需要细说了,看文档。

自动匹配-https://help.finereport.com/doc-view-534.html


  • 3关注人数
  • 368浏览人数
  • 最后回答于:2020-4-22 14:48
    请选择关闭问题的原因
    确定 取消
    返回顶部