【发布时间】:2015-07-28 23:41:49
【问题描述】:
尝试在 Teradata 13.0 中运行查询时出错 如何编写此查询?我将此 oracle 查询转换为 Teradata 查询:
select sb.name,
sb.address1,
sb.address2,
sb.city,
sb.stateprovince,
sb.postalcode,
sb.country,
sb.cid,
sb.item,
sb.mcnum,
sb.dmh,
sb.hy,
sb.firstname,
sb.lastname,
sb.email,
sb.monikerexec,
sb.res,
(select cid from (select * from abc.submissions where res is not null order by res asc) where name = sb.name and item <> sb.item and res < sb.res and rownum =1) as mins,
(select min(price) from ap.hist where name = sb.name) as minauc,
sb.cat,
sb.uni
from abc.submission sb
order by sb.item
【问题讨论】:
-
您需要该派生表的别名
(select cid from (select * from abc.submissions where res is not null order by res asc) AS ALIASNAME where name = sb.name and item <> sb.item and res < sb.res and rownum =1) as mins -
@JNevill 如果我这样做,它会给出 order by 错误,不能在子查询错误中使用,我需要 order by,因为那里有 rownum =1 条件。
-
无论您是否提供别名,都不能在子查询中排序。通过不提供别名,您可以从一个问题变成两个问题。我怀疑这里的窗口功能会更好。如果有人不打败我,我会看看我能不能做点什么。
标签: teradata