我使用的是iReport 5.1、JasperReports Server 5.1,而且使用INTERVAL的查询也有问题。我遇到问题的查询行是:
AND I.created::DATE >= I.created::DATE - INTERVAL '$P{attribution_window_passed} days'
我将属性窗口值从主报表作为参数传递给子报表。我验证了通过在子报表中使用文本字段传递的参数值是否正确工作。如果将$P{attribution_window_passed}排除并替换为整数,则查询运行良好,例如:
AND I.created::DATE >= I.created::DATE - INTERVAL '30 days'
我相信问题在于逃避单引号,我没有运气地尝试过:
'$P{attribution_window_passed} days'\' $P{attribution_window_passed} days'$P{attribution_window_passed} days$P{attribution_window_passed} ' days'\'$P{attribution_window_passed} days\'\\' $P{attribution_window_passed} days'我还尝试将$P{attribution_window_passed}更改为字符串类,而不是整数类。
如有任何关于在查询中使用INTERVAL的建议,将不胜感激。
发布于 2014-01-20 21:24:20
我在用PostgreSQL。我在主报表和子报表中都将参数'attribution_window_passed‘从Integer改为String。然后将主报表中的查询选择语句更改为
作为参数传递给子报表。子报表中的查询现在看起来像
https://stackoverflow.com/questions/21191435
复制相似问题