【发布时间】:2014-02-21 10:49:21
【问题描述】:
我正在尝试将 SQL 从 Oracle 11 G 移植到 Netezza。
这是我在 Oracle 中的查询:
SELECT
ID, TEACHERID, CLASS, SECTION, MAJOR, SUPERVISOR, COURSE, SCORE, SCOREDATE,
(select SCORE from STUDENT_SCORES d2 where d2.ID=d1.ID and d2.SCOREDATE (d1.SCOREDATE)-28 and d1.COURSE=d2.COURSE) as PRIORSCORE,
(d1.SCOREDATE)-28 as PRIORSCOREDT,
REMCD
FROM
STUDENT_SCORES d1
WHERE
TEACHERID='T1' AND SCOREDATE=(SELECT MAX(SCOREDATE) FROM STUDENT_SCORES WHERE TEACHERID='T1')
当我在 Netezza 中运行时出现错误:
ERROR: (2) This form of correlated query is not supported - consider rewriting
如何为 Netezza 重写此查询?请帮忙。
【问题讨论】:
-
您确定您的
select子句(PRIORSCORE) 中的子查询不返回多行吗? -
请找到您的答案here。您不能在
SELECT列表中使用相关子查询。 -
Maheswaran Ravishankar 是的,我知道我不能使用相关子查询,但是如何为 Netezza 重写?
-
您的问题在这里得到解答了吗,还是您还有问题?