2013-07-29 2 views
0

필요한 형식으로 데이터베이스에서 결과를 반환하는 다음 SQL 문이 있습니다. 그러나이 쿼리를 사용하지만 JobProducts.Serial = x에 대한 검색을 추가하고 싶습니다.CROSS APPLY SQL 문을 사용하여 검색

어떻게 이러한 검색을 추가 할 수 있습니까?

SELECT 
J.CustomerID, J.JobID, J.Status, J.Deleted, J.JobNo, Customers.CompanyName AS [Company], 
J.DateCreated AS [Date Created], derivedtbl_1.DueDate AS [Due Date] 

FROM 
Jobs J LEFT OUTER JOIN Customers ON J.CustomerID = Customers.CustomerID CROSS APPLY 
(
SELECT TOP (1) DueDate, JobProductID, JobID, ProductID, DepartmentID 
FROM  JobProducts AS JobProducts_1 
WHERE(JobProducts_1.JobID = J.JobID And Deleted = 0) 
ORDER BY DueDate 
) AS derivedtbl_1 
//I know the line below wont work, but how could I achieve this? 
WHERE JobProducts.Serial='123456' 

쿼리는 1 욥이 많은 JobProducts을 가질 수있는 다음 표 채용, JobProducts 및 고객을 사용하고, 한 고객은 많은 채용

답변

0

나는 그냥 cross apply 문으로 이동할 수 있습니다 생각을 가질 수 있습니다 :

SELECT J.CustomerID, J.JobID, J.Status, J.Deleted, J.JobNo, Customers.CompanyName AS [Company], 
     J.DateCreated AS [Date Created], derivedtbl_1.DueDate AS [Due Date] 
FROM Jobs J LEFT OUTER JOIN 
    Customers 
    ON J.CustomerID = Customers.CustomerID CROSS APPLY 
    (SELECT TOP (1) DueDate, JobProductID, JobID, ProductID, DepartmentID 
     FROM JobProducts AS JobProducts_1 
     WHERE JobProducts_1.JobID = J.JobID And 
      Deleted = 0 and 
      JobProducts.Serial='123456' 
     ORDER BY DueDate 
    ) AS derivedtbl_1; 
+0

당신의 도움을 주셔서 감사합니다 – user1711657