我正在尝试从 ClearQuest 中提取数据,它在基于 Eclipse 的前端运行一个 Oracle 数据库。使用内置的查询构建器,我无法限制提供的数据足以让我到达我想要的地方。
我的目标:我希望从两个表中提取数据。表 2 与表 1 具有多对一的关系。从数据库中提取数据时,我希望从表 2 中提取与表 1 中的指定记录集有关系的最新记录。
我的尝试:我开始编写一个简单的查询,该查询使用第二次选择从表 2 中获取最新记录。我无法在我的机器上设置 oracle 服务器,因此不得不在 mysql 中尝试查询并针对 oracle 进行调整。这是查询:
select t1.id, t1.name, t2.set_date
from test_table t1, link_table t2
where t2.test_id = t1.id
and t2.set_date = (select set_date
from link_table
where t1.id = test_id
order by set_date desc
limit 1)
and t1.state = 'Closed';
在 MySQL 中运行它可以正常工作!更改查询以匹配 Oracle 标准给了我这个;
SELECT t1.id,t1.name,t2.set_date
FROM test_table t1,link_table t2
WHERE t2.test_id = t1.id
AND t2.set_date = (SELECT set_date
FROM link_table
WHERE t1.id = test_id
AND ROWNUM = 1
ORDER BY set_date DESC)
AND t1.state = 'Closed';
在测试通过 Oracle Formatter (例如Instant SQL Formatter)运行它时,它运行良好。但是,当将查询输入 ClearQuest 以提取数据时,它给了我错误;ORA-00907: missing right parenthesis
.
我整个早上都在尝试更改它,但无法使其正常工作。我错过了什么?