报告查询中的多个where子句ireport jasper

时间:2015-01-12 11:02:18

标签: jasper-reports orientdb

我想从两个表中生成此数据的报告图表。所以我有这样的查询(使用OrientDB

select col1,col2 from (select col11,col22 from t1 where col11 = $P{col11}) where col1 = $P{col1} and col2 = $P{col2}

当我运行此报告时,我将得到以下异常

  

产生的原因:java.lang.IndexOutOfBoundsException:索引:2,尺寸:2   at java.util.ArrayList.rangeCheck(ArrayList.java:635)at java.util.ArrayList.get(ArrayList.java:411)at com.orientechnologies.orient.core.sql.filter.OSQLPredicate.bindParameters(OSQLPredicate.java) :366)   在com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:182)   在com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:435)   在com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:417)   在com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:388)   在com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:64)   在com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:1163)   ... 8更

正如我的观察,如果我有单一的where条件,即在子查询或外部查询中它起作用,如果它在两者中都有where子句,则这是抛出的异常。

1 个答案:

答案 0 :(得分:0)

不知道它是否能解决您的问题,但使用别名可能对您有所帮助?有关列和表的正确SQL别名:

选择col1,col2 from(选择col11作为col1,col22作为col2         从t1,其中col11 = $ P {col11})作为表格 其中col1 = $ P {col1},col2 = $ P {col2}