关于 Jasper ReportServer 5.1 及其 DomEL(域表达式语言)的问题。
我有一个只有一张桌子的域。T是一个表,(日期日期,值编号)是 Oracle 中的列及其类型。
因此,如果我尝试使用表达式在我的域中创建新的“计算字段”:
first_value(value) over (order by day)
出现错误消息:
Found 'over' after end of expression
我认为的主要原因是:
http://community.jaspersoft.com/documentation/sql-functions
引用:
您可以在 DomEL 表达式中使用 SQL 函数,但仅限于有限的情况:
• 数据库必须支持这些功能。有关可用功能及其语法,请参阅供应商文档。• 函数必须遵循逗号分隔参数的约定。例如,您可以使用 TRIM(person.name),但不能使用 TRIM('Jr' FROM person.name) • 返回值的类型必须适当,无论是在表达式中还是对于计算字段的类型。• SQL 上下文必须适合函数。例如,您不能在计算字段中使用 COUNT 等聚合函数,因为没有 GROUP BY 子句。 除了逗号分隔的参数模式,DomEL 验证不能强制执行这些标准。您必须确保任何 SQL 函数都满足这些条件,否则表达式在使用域创建报告时会导致错误。
我的问题是这种“强制执行”的结果吗?
如何使用 SQL 窗口函数构造计算字段?
Jasper 有什么方法可以实现 first_value/last_value/lead/lag 效果?
谢谢!