我知道你以前回答过类似的问题,但我有一个特定的问题,希望你能提供帮助。 我有一个组织表(客户)。 我需要找到每个客户最近的工作。
事实是,客户端表并不直接连接到作业。它就像这个工作 - 工作标题 - 组织。所以我查询了所有组织(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?
答案 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;