大神们帮我看一下,选文本控件可以正常出来数据,选时间控件就报错,是查询命令有问题吗?

图片.png图片.png图片.png

FineReport gE1V35gS 发布于 2024-1-19 09:27 (编辑于 2024-1-19 09:32)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-1-19 09:30(编辑于 2024-1-19 11:11)

你要把时间控件格式化为 年、月

'"+year(年)+"' 和'"+month(月)+"'

补充

SELECT extract ( year FROM debit_time ) AS 年, extract ( month FROM debit_time ) AS 月, SUM ( round( price / 100 :: NUMERIC, 2 ) ) as 营业额 FROM tb_debit_detail WHERE 1=1 and merchant_name IN ( '晋中基地餐厅', '晋中基地餐厅NEW' )

${if(len(年)==0,"","and extract (YEAR FROM debit_time) ='"+year(年)+"'")} 

${if(len(月)==0,"","and extract ( month FROM debit_time )='"+month(月)+"'")} 

GROUP BY extract ( YEAR FROM debit_time ),extract ( month FROM debit_time )

  • gE1V35gS gE1V35gS(提问者) 你好能帮忙完整的改一下吗?新手。SELECT EXTRACT( YEAR FROM debit_time ) AS 年, EXTRACT( month FROM debit_time ) AS 月, SUM ( round( price / 100 :: NUMERIC, 2 ) ) as 营业额 FROM tb_debit_detail WHERE 1=1 and merchant_name IN ( \'晋中基地餐厅\', \'晋中基地餐厅NEW\' ) ${if(len(年)==0,\"\",\"and EXTRACT( YEAR FROM debit_time ) =\'\"+年+\"\'\")} ${if(len(月)==0,\"\",\"and EXTRACT( month FROM debit_time ) =\'\"+月+\"\'\")} GROUP BY EXTRACT ( YEAR FROM debit_time ),EXTRACT( month FROM debit_time )
    2024-01-19 09:34 
  • 用户k6280494 用户k6280494 回复 gE1V35gS(提问者) 把年和月的地方替换成我的就行啊
    2024-01-19 10:01 
  • 用户k6280494 用户k6280494 回复 gE1V35gS(提问者) +年+和+月+的地方替换一下即可
    2024-01-19 10:03 
  • gE1V35gS gE1V35gS(提问者) 回复 用户k6280494 这样对吗? ${if(len(年)==0,\"\",\"and extract ( YEAR FROM debit_time ) =\'\"+year(年)+\"\' )} ${if(len(月)==0,\"\",\"and extract ( month FROM debit_time )=\'\"+year(月)+\"\')} 这样就不显示控件了 用模板吗?
    2024-01-19 11:00 
  • gE1V35gS gE1V35gS(提问者) 回复 用户k6280494 SELECT extract ( year FROM debit_time ) AS 年, extract ( month FROM debit_time ) AS 月, SUM ( round( price / 100 :: NUMERIC, 2 ) ) as 营业额 FROM tb_debit_detail WHERE 1=1 and merchant_name IN ( \'晋中基地餐厅\', \'晋中基地餐厅NEW\' ) ${if(len(年)==0,\"\",\"and extract (YEAR FROM debit_time) =\'\"+year(年)+\"\')} ${if(len(月)==0,\"\",\"and extract ( month FROM debit_time )=\'\"+year(月)+\"\')} GROUP BY extract ( YEAR FROM debit_time ),extract ( month FROM debit_time )
    2024-01-19 11:08 
最佳回答
0
luojian0323Lv7资深互助
发布于2024-1-19 09:30

时间控件的格式不是你sql中语法支持的格式

比如年,你用日期控件就要设置日期控件和格式为:yyyy

月,就要设置控件格式为MM

等等

  • gE1V35gS gE1V35gS(提问者) 我试了 也不行啊
    2024-01-19 09:34 
  • gE1V35gS gE1V35gS(提问者) 你好 是不是代码有问题啊 SELECT EXTRACT( YEAR FROM debit_time ) AS 年, EXTRACT( month FROM debit_time ) AS 月, SUM ( round( price / 100 :: NUMERIC, 2 ) ) as 营业额 FROM tb_debit_detail WHERE 1=1 and merchant_name IN ( \'晋中基地餐厅\', \'晋中基地餐厅NEW\' ) ${if(len(年)==0,\"\",\"and EXTRACT( YEAR FROM debit_time ) =\'\"+年+\"\'\")} ${if(len(月)==0,\"\",\"and EXTRACT( month FROM debit_time ) =\'\"+月+\"\'\")} GROUP BY EXTRACT ( YEAR FROM debit_time ),EXTRACT( month FROM debit_time )
    2024-01-19 09:36 
  • luojian0323 luojian0323 回复 gE1V35gS(提问者) 你的报错跟数据类型有关:类型双精度的输入语法无效 日期你就用日期来过滤。 比如 大于等于某个日期或者小于等于某个日期
    2024-01-19 09:37 
最佳回答
0
JL98Lv6中级互助
发布于2024-1-19 10:16(编辑于 2024-1-19 10:20)

可以把参数设置成对应的生成SQL,去数据库看一下问题,先在数据库找到问题再改会快一些

image.png

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

日期控件要调成对应的格式,要不然传的是一个2023-12-12这样的数据,是带“-”的

image.png

  • gE1V35gS gE1V35gS(提问者) 执行SQL没有问题
    2024-01-19 10:54 
  • JL98 JL98 回复 gE1V35gS(提问者) 你的日期控件传的是一个日期,不是2024和01
    2024-01-19 11:05 
  • 4关注人数
  • 253浏览人数
  • 最后回答于:2024-1-19 11:11
    请选择关闭问题的原因
    确定 取消
    返回顶部