SQL交叉联接错误无法绑定多部分标识符
我试图返回表Jobs中的几行,但也返回表JobProducts中的下一个到期日(其中每个JobProduct都有一个到期日) 到目前为止,我有以下几点SQL交叉联接错误无法绑定多部分标识符,sql,sql-server,Sql,Sql Server,我试图返回表Jobs中的几行,但也返回表JobProducts中的下一个到期日(其中每个JobProduct都有一个到期日) 到目前为止,我有以下几点 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
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 JOIN
(SELECT TOP (1) DueDate, JobProductID, JobID, ProductID, DepartmentID
FROM JobProducts AS JobProducts_1
WHERE JobProducts_1.JobID = J.JobID
ORDER BY DueDate)
AS derivedtbl_1
但是我得到了错误
无法绑定多部分标识符“J.JobID”
任何帮助都将不胜感激错误似乎来自SQL Server。我认为您混淆了
交叉连接
(它是笛卡尔积)和交叉应用
:
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 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
ORDER BY DueDate)
AS derivedtbl_1
您可以尝试将交叉连接更改为交叉应用
CROSS APPLY
(SELECT TOP (1) DueDate, JobProductID, JobID, ProductID, DepartmentID
FROM JobProducts AS JobProducts_1
WHERE JobProducts_1.JobID = J.JobID
ORDER BY DueDate)