WITH FirstQuery AS ( select i.id, o.[name] from Item i LEFT OUTER JOIN sys.objects o on o.[name]='I' + cast(i.id as nvarchar(20)) where o.name is not null ) select PriceListItem.ProductExternalId, FQ.Id, [PriceListItem].[ProductExternalDesc] from FirstQuery FQ inner join [Product] on Product.ItemId = FQ.name and Product.InstanceId = FQ.ID inner join [PriceListItem] on Product.ID = PriceListItem.ProductId;
Имеется ошибка:
Преобразование не удалось при преобразовании значения nvarchar 'I451' в данные введите int.
Итак ... Похоже, вы пытаетесь присоединиться к Product.ItemID (int) = FQ.name (varchar).
Product.ItemID (int) = FQ.name (varchar)
Почему вы думаете, что это сработает?
Примеры данных могут помочь людям понять, кто выпытаясь сделать и как вы должны это сделать.
Если вы все еще хотите присоединиться к этим двум столбцам и хотите, чтобы они не совпадали, если это недопустимый тип int, возможно, сделайте это наоборот.Приведите Product.ItemID к varchar:
inner join [Product] on cast(Product.ItemID as varchar) = FQ.name