如何连接到OpenEdge SQL中的第一行?
连接到SQL中的第一行应该和简单地连接到内部select一样简单如何连接到OpenEdge SQL中的第一行?,sql,openedge,Sql,Openedge,连接到SQL中的第一行应该和简单地连接到内部select一样简单 select so_nbr, sod_line last_line from so_mstr join sod_det on sod_det.rowid = (select top 1 sod_det.rowid from sod_det where sod_nbr = so_n
select so_nbr, sod_line last_line
from so_mstr
join sod_det on sod_det.rowid = (select top 1 sod_det.rowid
from sod_det
where sod_nbr = so_nbr
order by sod_line desc) x
where so_ord_date > curdate() - 60
不幸的是,我得到了:错误代码-20302,SQL状态HY000:[DataDirect][OpenEdge JDBC Driver][OpenEdge]TOP子句在不支持的上下文中使用。(13694)
注意,我被困在OE10.1C上,无法升级。根据:
OpenEdge 11.2增加了对
要执行SQL操作,请选择
查询;低于11.2的OpenEdge版本不适用
支持偏移量
/提取
从
“SQL参考”文档:
The OFFSET clause specifies the number of rows to skip, before starting to return rows
from the query expression. The FETCH clause specifies the number of rows to return,
after processing the OFFSET clause.
值得注意的是,TOP
和OFFSET
/FETCH
子句是
互斥的-TOP
不能用于使用
偏移量
或取数
试试这个
SELECT so_nbr,sod_line As last_line
FROM so_mstr
JOIN sod_det ON sod_det.rowid = (SELECT sod_det.rowid
FROM sod_det WHERE sod_nbr = so_nbr
ORDER BY sod_line Desc
FETCH FIRST 1 ROWS ONLY) x
WHERE so_ord_date > curdate() - 60
不幸的是,我们使用的是10.1C,没有机会升级。有没有办法在OpenEdge的早期版本上实现这一点?