Многоэлементный идентификатор "" не может быть привязан - PullRequest
2 голосов
/ 24 февраля 2012

Я получаю сообщение об ошибке «Не удалось связать многокомпонентный идентификатор Company.Id»в блоке кода ниже на последнем Company.Id кода.Может кто-нибудь сказать мне, почему я получаю эту ошибку?

declare @ModuleId int
set @ModuleId = 3

Select Top 1 Vehicle.Id 
From dbo.Vehicle (NoLock) 
Join 
(
        Select InventoryCompany.CompanyId As Id
    From dbo.InventoryCompany (NoLock) 
        Join dbo.Inventory (NoLock) On Inventory.Id = InventoryCompany.InventoryId
        Join dbo.Module(NoLock) On Module.Content = Inventory.Id  
    Where dbo.Module.Id = @ModuleId
)CompanyIds On Company.Id = Vehicle.CompanyId

Ответы [ 3 ]

5 голосов
/ 24 февраля 2012

В последней строке измените:

CompanyIds On Company.Id = Vehicle.CompanyId

На:

CompanyIds On CompanyIds.Id = Vehicle.CompanyId

1 голос
/ 24 февраля 2012

Вы назвали подзапрос CompanyIds, и это то, что вы должны использовать

declare @ModuleId int
set @ModuleId = 3

Select Top 1 Vehicle.Id 
From dbo.Vehicle (NoLock) 
Join 
(
        Select InventoryCompany.CompanyId As Id
    From dbo.InventoryCompany (NoLock) 
        Join dbo.Inventory (NoLock) On Inventory.Id = InventoryCompany.InventoryId
        Join dbo.Module(NoLock) On Module.Content = Inventory.Id  
    Where dbo.Module.Id = @ModuleId
) CompanyIds On CompanyIds.Id = Vehicle.CompanyId
1 голос
/ 24 февраля 2012

Вам необходимо изменить свой идентификатор на CompanyIds

declare @ModuleId int
set @ModuleId = 3

Select Top 1 Vehicle.Id 
From dbo.Vehicle (NoLock) 
Join 
(
        Select InventoryCompany.CompanyId As Id
    From dbo.InventoryCompany (NoLock) 
        Join dbo.Inventory (NoLock) On Inventory.Id = InventoryCompany.InventoryId
        Join dbo.Module(NoLock) On Module.Content = Inventory.Id  
    Where dbo.Module.Id = @ModuleId
)CompanyIds 
ON CompanyIds.Id = Vehicle.CompanyId
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...