2014-02-14 85 views
0

這是我簡單的SQL,但是當我運行它,然後我得到的錯誤SQL Server中的多部分標識符問題

多部分標識符「bbajobs.jid」無法綁定。

這裏是我的SQL

SELECT * 
FROM (
    SELECT Row_number() OVER (
      ORDER BY [bbajobs].JID 
      ) AS RowNumber 
     ,[BBAJobs].[JID] 
     ,[AccountReference] AS [Acc Ref] 
     ,[BBAJobs].[OEReference] AS [OERef] 
     ,[JobType] 
     ,[JobState] 
     ,[JobShippedDate] 
     ,[UPSShippingNumber] 
     ,[CustomerName] [Customer Name] 
     ,[ContactName] [Contact Name] 
     ,[Telephone] 
     ,[JobDescription] 
     ,[CallRem].[rem] 
     ,[CallRem].[callStatus] 
     ,[CallRem].[ShopRemarks] 
     ,CustomerNotes 
     ,ShopNotes 
     ,RecievedDate 
     ,UserName 
    FROM dbo.BBAJobs 
    LEFT JOIN dbo.CallRem ON dbo.BBAJobs.JID = dbo.CallRem.jid 
    ) x 
WHERE 1 < 2 
    AND bbajobs.jid IN (
     SELECT CONVERT(VARCHAR, data) AS [JID] 
     FROM dbo.Split1('33180,33265,33047', ',') 
     ) 
    AND RowNumber BETWEEN 1 
     AND 20 

的錯誤是我不太清楚。所以請指導我糾正什麼。謝謝

+0

到位和bbajobs.jid使用和x.jid – KumarHarsh

回答

2

您有一個名爲x的子查詢,而不是bbajobs s。您需要更改where條款:

WHERE 1 < 2 
    AND x.jid IN (
     SELECT CONVERT(VARCHAR(255), data) AS [JID] 
     FROM dbo.Split1('33180,33265,33047', ',') 
     ) 
    AND RowNumber BETWEEN 1 AND 20; 

我也是在convert()函數調用增加了一個長度爲varchar()從不使用varchar()沒有長度。這可能會引入非常難以調試的問題。

+0

因爲現在另一個問題來自我更新我的問題。請幫助 – Thomas

+0

@Thomas如果您還有其他問題,那麼您應該發佈一個新問題。不要編輯這個職位與新問題。我回滾了您的修改內容,請發佈有關這些詳細信息的新問題。 – Taryn

+0

是的,我這裏張貼是鏈接http://stackoverflow.com/questions/21782716/sql-server-wrong-row-number-is-showing – Thomas

1
 ,UserName 
    FROM dbo.BBAJobs 
    LEFT JOIN dbo.CallRem ON dbo.BBAJobs.JID = dbo.CallRem.jid 
    ) x 
WHERE 1 < 2 
    AND bbajobs.jid IN (  --<-- Now this is X.jid since it is coming from X 
     SELECT CONVERT(VARCHAR, data) AS [JID] 
     FROM dbo.Split1('33180,33265,33047', ',') 
     ) 
    AND RowNumber BETWEEN 1 
     AND 20 

正確的方式將

 ,UserName 
    FROM dbo.BBAJobs 
    LEFT JOIN dbo.CallRem ON dbo.BBAJobs.JID = dbo.CallRem.jid 
    ) x 
WHERE 1 < 2 
    AND x.jid IN (  --<-- Now this is X.jid since it is coming from X 
     SELECT CONVERT(VARCHAR, data) AS [JID] 
     FROM dbo.Split1('33180,33265,33047', ',') 
     ) 
    AND RowNumber BETWEEN 1 
     AND 20 
+0

我更新我的問題,因爲現在又出現了另一個問題。請幫忙 – Thomas

相關問題