永洪社区

标题: 制作报表时数据集和数据库正常执行,制作报表报错 [打印本页]

作者: Mattya    时间: 2023-10-26 09:51
标题: 制作报表时数据集和数据库正常执行,制作报表报错
使用postgresql数据库的数据集正常编写,替换参数后在数据库中也能正常执行,但是在报表制作时拖拽数据列进报表时报错。将对应的日志中执行语句放入数据库执行也是没有问题的,报错如截图,日志已上传,请帮忙看一下问题。

作者: yhdata_yzm    时间: 2023-10-26 10:02
看起来是表达式的数据类型引起的。
作者: Mattya    时间: 2023-10-26 11:00
yhdata_yzm 发表于 2023-10-26 10:02
看起来是表达式的数据类型引起的。

数据集里面也是这样写的,date_trunc函数里面参数也做了转换,是还有哪里需要做转换吗?
作者: yhdata_lyaa    时间: 2023-10-26 13:32
表3的计算列写了什么
作者: Mattya    时间: 2023-10-26 13:50
yhdata_lyaa 发表于 2023-10-26 13:32
表3的计算列写了什么

表3没有计算列,全部都是数据集的结果字段

作者: 行走的蜗牛    时间: 2023-10-26 14:12
Caused by: java.sql.SQLException   执行SQL失败:“ERROR: operator does not exist: date >= interval
  Hint: No operator matches the given name and argument types. You might need to add explicit type casts.
  Position: 1479”
1479是什么,日志里看,是不是参数有空值?request_time>=date_trunc('week',cast( ?  as timestamp))
作者: Mattya    时间: 2023-10-26 14:19
行走的蜗牛 发表于 2023-10-26 14:12
Caused by: java.sql.SQLException   执行SQL失败:“ERROR: operator does not exist: date >= interval
  ...

两个参数endtime和starttime_new的组件都设置了默认的组件值,endtime默认是日期组件的当天,starttime_new的组件设置了默认选中第一个值文本的'当天'
作者: 行走的蜗牛    时间: 2023-10-26 15:03
Mattya 发表于 2023-10-26 14:19
两个参数endtime和starttime_new的组件都设置了默认的组件值,endtime默认是日期组件的当天,starttime_n ...

风控效果统计_月季年区间,这个是一个数据集么,拉出来看看?
作者: Mattya    时间: 2023-10-26 15:22
行走的蜗牛 发表于 2023-10-26 15:03
风控效果统计_月季年区间,这个是一个数据集么,拉出来看看?

把脚本改成最简单的带参数语句,在日志中还是传不进去,日志记录中参数部分是?问号
作者: 行走的蜗牛    时间: 2023-10-26 16:11
Mattya 发表于 2023-10-26 15:22
把脚本改成最简单的带参数语句,在日志中还是传不进去,日志记录中参数部分是?问号 ...

你把数据集拆开,一步步测试,看看是哪里参数有问题,只看这个的话看不出来啥问题
作者: Mattya    时间: 2023-10-30 14:15
行走的蜗牛 发表于 2023-10-26 16:11
你把数据集拆开,一步步测试,看看是哪里参数有问题,只看这个的话看不出来啥问题 ...

我发现传递的参数在编辑参数里面重新编辑再保存,然后再恢复原来的参数,就不报错了。但是过一段时间不登录,重新登录并编辑这个报表时,点进去就会又报错,这是什么情况?
作者: Mattya    时间: 2023-10-30 14:21
Mattya 发表于 2023-10-30 14:15
我发现传递的参数在编辑参数里面重新编辑再保存,然后再恢复原来的参数,就不报错了。但是过一段时间不登 ...

准确的问题是刚点进去会报date_trunc函数的参数无法识别,需要转换数据类型,然后在传递参数里面点选了参数"参与报表过滤"选项,报表就会自动刷新出数据集预览数据,但是预览或者查看保存后的报表还是会报date_trunc函数参数有问题
作者: yhdata_yzm    时间: 2023-10-30 14:38
Mattya 发表于 2023-10-30 14:21
准确的问题是刚点进去会报date_trunc函数的参数无法识别,需要转换数据类型,然后在传递参数里面点选了参 ...

date_trunc用在哪儿了
作者: Mattya    时间: 2023-10-30 14:50
yhdata_yzm 发表于 2023-10-30 14:38
date_trunc用在哪儿了

写在where条件里的

作者: Mattya    时间: 2023-10-30 15:00
Mattya 发表于 2023-10-30 14:50
写在where条件里的

报错是cannot cast type interval to date,但是数据集和数据查询工具里面都是没有报错可以刷出数据的
作者: yhdata_yzm    时间: 2023-10-30 15:28
Mattya 发表于 2023-10-30 15:00
报错是cannot cast type interval to date,但是数据集和数据查询工具里面都是没有报错可以刷出数据的 ...

看看你的endtime的数据类型,和格式,直接把endtime修改为日期类型,还会报错吗




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4