我想从两个表中生成此数据的报告图表。所以我有这样的查询(使用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子句,则这是抛出的异常。
答案 0 :(得分:0)
不知道它是否能解决您的问题,但使用别名可能对您有所帮助?有关列和表的正确SQL别名:
选择col1,col2 from(选择col11作为col1,col22作为col2 从t1,其中col11 = $ P {col11})作为表格 其中col1 = $ P {col1},col2 = $ P {col2}