Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL交叉联接错误无法绑定多部分标识符_Sql_Sql Server - Fatal编程技术网

SQL交叉联接错误无法绑定多部分标识符

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

我试图返回表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 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)