Я не могу заставить мое обновление из метода внутреннего соединения работать. Я попытался написать несколько разных способов. Строки влияют, но значения таблицы продуктов никогда не обновляются.Обновление от внутреннего соединения
Выберите код для проверки (не должен возвращать никаких результатов после того, как запрос на обновление выполняется):
SELECT
[P].[ProductCode],
[P].[PriceSelling],
[ID].[InclPrice],
[P].[StockQty],
[ID].[Qty]
FROM
dbo.Sync_ImportData AS [ID]
INNER JOIN
dbo.Sync_Product AS [P]
ON
[P].[ProductCode] = [ID].[ISBN]
WHERE
([P].[StockQty] <> [ID].[Qty] OR [P].[PriceSelling] <> [ID].[InclPrice])
Update Код:
UPDATE [P]
SET
[P].[StockQty] = [ID].[Qty],
[P].[PriceSelling] = [ID].[InclPrice]
FROM
dbo.Sync_Product AS [P]
INNER JOIN
dbo.Sync_ImportData AS [ID]
ON
[P].[ProductCode] = [ID].[ISBN]
WHERE
([P].[StockQty] <> [ID].[Qty] OR [P].[PriceSelling] <> [ID].[InclPrice])
В принципе мне нужно обновить фондовый Количество и цена, если импортированные данные a) имеет запись для продукта (ISBN соответствует ProductCode) и b) либо значение необходимо обновить (количество или цена отличается от ImportData)
Вы считаете нулевые значения? –
Я не вижу никаких очевидных причин, которые бы не работали так, как ожидалось. Вы можете использовать предложение 'OUTPUT', как описано здесь: http://www.tech-recipes.com/rx/47032/a-beginners-guide-to-the-output-clause-in-sql-server/, чтобы подтвердить, какие строки были обновлены. Неужели столбцы обновлены 'float'? –
Вы уверены, что ProductCode соответствует ISBN? – Donal