在db2 10.1上运行子查询时出现SQL错误

时间:2014-10-15 19:30:52

标签: sql db2 subquery birt

我们正在尝试将复杂的查询放入BIRT,以便获得一个带有'sum'作为其中一个值的报告。我们使用递归CTE生成总和。

我们的查询如下:
007 WITH CTETASKLIST( 008 SUPERVISORUSERNAME , 009 SUBORDINATEUSERNAME 010 ) AS( 011 SELECT 012 SUPERVISORUSERNAME , 013 SUBORDINATEUSERNAME 014 FROM 015 DBRO.SUBORDINATELINK 016 WHERE 017 SUBORDINATEUSERNAME = ? 018 UNION ALL SELECT 019 S.SUPERVISORUSERNAME , 020 S.SUBORDINATEUSERNAME 021 FROM 022 DBRO.SUBORDINATELINK AS S , 023 CTETASKLIST AS T 024 WHERE 025 S.SUPERVISORUSERNAME = T.SUBORDINATEUSERNAME 026 ) SELECT 027 OWNERFULLNAME , 028 TOTALTASKS , 029 ( 030 SELECT 031 SUM(TA2.TOTALTASKS) 032 FROM 033 CTETASKLIST AS CTE JOIN DBRO.USERTASKTOTAL AS TA2 034 ON TA2.OWNERUSERNAME = CTE.SUBORDINATEUSERNAME 035 ) AS SUMTA 036 FROM 037 DBRO.USERTASKTOTAL AS TA 038 WHERE 039 OWNERUSERNAME = ?

我们的软件版本是:
BIRT:2.6.1
DB2:10.1

我们保证测试数据终止(无无限递归)。

我们得到的错误是SQLCODE = -104,SQLSTATE = 42601。解析器将子查询(第29行)的'(')标记为意外字符。

确切的错误讯息:Image http://i61.tinypic.com/33287ls.png

当直接针对数据库运行时(例如,使用DBEaver),此查询运行完全正常。但是,当我们将其粘贴到BIRT时,它会生成错误消息。有谁知道为什么会发生这种情况或解决问题?不幸的是,我们无法升级BIRT的版本,因为它是不同软件产品的一部分。

谢谢。

0 个答案:

没有答案