这似乎是一个非常简单的查询,但我必须遗漏一些明显的东西。我假设这种情况很常见。
我有一个存储产品的表和另一个存储交易的表。交易表有关于销售员的信息。现在,我需要生成一份报告,列出所有产品并包含最后销售该产品的销售人员的 ID。
我尝试了一个简单的查询,例如:
select id, product_name, (select salesman_id from (select salesman_id from trans where product_id = a.id order by trans_date desc) where rownum = 1) salesman_id from products a
这个查询在 a.id 上给了我无效的标识符。
所以在网上搜索后,我尝试在其中添加一个 LATERAL 子句。如下
select id, product_name, salesman_id from products a, LATERAL(select salesman_id from (select salesman_id from trans where product_id = a.id order by trans_date desc) where rownum = 1)
但是这个查询给了我不完整的 SQL 语句。
有没有一种简单的方法可以在单个查询中实现这一点?