2011-10-20 100 views
0

我相信這是顯而易見的,但我似乎無法弄清楚爲什麼我得到錯誤。SQL查詢錯誤:多部分標識符...無法綁定

「Msg 4104,Level 16,State 1,Line 1 無法綁定多部分標識符」dbo.ProductCode.ProductCode「。

我對每個表中的「名稱」列聯合許多表的基礎,但在這種情況下,我需要根據ProductCode.Name

SELECT 
dbo.Servers.Name, 
dbo.ProductCodeReference.ProductName, 
dbo.Enclosure.Model, 
dbo.OperatingSystem.FullOS, dbo.OperatingSystem.osbit, 
dbo.OperatingSystem.ServicePack, dbo.OperatingSystem.Version, 
dbo.Processor.Processors, dbo.Processor.CoreCount, 
dbo.Memory.capacity, 
dbo.MarcLevel.marcLevel 
FROM dbo.Servers 

INNER JOIN dbo.ProductCodeReference 
ON dbo.ProductCode.ProductCode=dbo.ProductCodeReference.ProductCode 

INNER JOIN dbo.Enclosure 
ON dbo.Servers.Name=dbo.Enclosure.Name 

INNER JOIN dbo.OperatingSystem 
ON dbo.Servers.Name=dbo.OperatingSystem.Name 

INNER JOIN dbo.Processor 
ON dbo.Servers.Name=dbo.Processor.Name 

INNER JOIN dbo.Memory 
ON dbo.Servers.Name=dbo.Memory.name 

INNER JOIN dbo.MarcLevel 
ON dbo.Servers.Name=dbo.MarcLevel.name 

ORDER BY dbo.Servers.Name 
到ProductCodeReference.ProductCode鏈接到ProductCode.ProductCode拉ProductCodeReference.ProductName

希望這是有道理的。謝謝!

+0

如果可以幫助您,請參閱本文。 http://stackoverflow.com/questions/20120081/why-am-i-getting-a-multi-part-identifier-could-not-be-bound-error/26379769#26379769 – NoNaMe

回答

4

的問題是,如下所示的線,因爲沒有表名爲查詢ProductCode

dbo.ProductCode.ProductCode 

看起來你忘了,包括在查詢中ProductCode表。

FROM dbo.Servers 

INNER JOIN dbo.ProductCode 
ON .... = .... 

INNER JOIN dbo.ProductCodeReference 
ON dbo.ProductCode.ProductCode=dbo.ProductCodeReference.ProductCode 
+0

這很容易。說得通。謝謝! –

+0

太好了!如果你滿意,不要忘了標記答案。 –

+0

我不得不等待5分鐘才能接受它,你們反應太快。 –

2

有除了這一條線到dbo.ProductCode表的任何地方沒有提到在您的查詢:

ON dbo.ProductCode.ProductCode=dbo.ProductCodeReference.ProductCode 

這表需要由JOIN某處指定。

相關問題