2017-02-10 2 views
0

나는 youve가 이전에 비슷한 문제에 대해 답변 한 것을 알고 있지만 구체적인 질문이 있으니 도와 주시면 감사하겠습니다. 조직 (고객) 테이블이 있습니다. 클라이언트 당 가장 최근의 작업을 찾아야합니다.ORDER BY IS INVALID

것은 클라이언트 테이블이 작업에 직접 연결되지 않습니다. 그것은이 Job - Job Header - Organization과 같습니다.

그래서 모든 조직 (Select * From Organizations)에 대한 쿼리가 있으며 클라이언트 ORg를 조인 기준으로 사용하여 가장 최근의 작업을 찾는 쿼리에 JOIN이 있습니다.

예를 들어

: 나는 그것을 실행하면

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;