【发布时间】:2014-12-18 03:49:48
【问题描述】:
这似乎是一个非常简单的查询,但我一定遗漏了一些明显的东西。我假设这种情况很常见。
我有一个存储产品的表和另一个存储交易的表。交易表有关于销售员的信息。现在,我需要生成一份报告,列出所有产品并包含最后销售该产品的销售人员的 ID。
我尝试了一个简单的查询,例如:
选择 id、product_name、 (选择 salesman_id 来自 (选择salesman_id 来自反式 其中product_id = a.id 按 trans_date desc 排序) 其中 rownum = 1) salesman_id 从产品a
这个查询在 a.id 上给了我无效的标识符。
所以在网上搜索后,我尝试在其中添加一个 LATERAL 子句。如下
选择 id、product_name、 salesman_id 从产品 a, LATERAL(select salesman_id from (选择salesman_id 来自反式 其中product_id = a.id 按 trans_date desc 排序) 其中rownum = 1)
但是这个查询给了我不完整的 SQL 语句。
有没有一种简单的方法可以在单个查询中实现这一点?
【问题讨论】:
-
这可能对您有所帮助:sqlfiddle.com 为您的示例创建一个小提琴。鉴于您正在编写不完整的 sql,当它解决时,为什么不这样做:
select top 5 * from ()或限制集合的东西。
标签: sql oracle top-n inline-view