订单无效

时间:2017-02-10 09:52:02

标签: sql greatest-n-per-group

我知道你以前回答过类似的问题,但我有一个特定的问题,希望你能提供帮助。 我有一个组织表(客户)。 我需要找到每个客户最近的工作。

事实是,客户端表并不直接连接到作业。它就像这个工作 - 工作标题 - 组织。

所以我查询了所有组织(Select * From Organizations),然后我查询了一个查询,该查询使用客户端ORg作为连接条件查找最近的作业。

有关 例如:

Select * From Organization
LEFT JOIN (Select Top 1 JobDate, JobNumber,JobWeight From Jobs LEFT JOIN JobHeader on Job.PK = JobHeader.ParentPK LEFT JOIN Organization on JObHeader.Org = Organization.PK Order by JObDate DESC)

当我运行它时,它会出现错误,说Order By子句在视图,内联函数中无效。

我如何在每个相关组织的JobHeader表中找到最新的JObDate?

1 个答案:

答案 0 :(得分:0)

您的语法类似于SQL Server。您可以使用相关子查询或横向连接(apply)执行所需操作。这看起来像

select o.*, j.*
from Organization o outer apply
     (select Top 1 JobDate, JobNumber, JobWeight
      from Jobs j join
           JobHeader jh
           on j.PK = jh.ParentPK 
      where jh.Org = o.PK 
      order by JObDate DESC
     ) j;