2017-02-10 35 views
0

我知道你已經回答過類似的問題,但我有一個具體的查詢,我希望你能提供幫助。 我有一個組織(客戶)的表。 我需要爲每個客戶找到最近的作業。ORDER BY IS INVALID

事情是,客戶端表格不直接連接到作業。它像這樣的工作 - 工作標題 - 組織。

所以我有一個查詢所有組織(Select * From Organizations),然後我有一個查詢JOIN找到最新的作業使用客戶端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

您正在使用哪些DBMS? –

+0

https://www.tutorialspoint.com/sql/sql-sub-queries.htm –

回答

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; 
相關問題