Я пытаюсь написать запрос SQL / XML в SQL Server, чтобы обновить определенную строку в таблице базы данных. У меня есть две таблицы: первая называется редакция с колонками id, year, translations, book
.
Пример
Вторая таблица называется book, имеющей столбцы: id, title. Пример (id = "11", Title = "Encore une fois")
Я написал следующий запрос, который пока работает нормально
UPDATE edition
SET translations.modify('insert element Translation {attribute Language
{"Norwegian"}, attribute Publisher {"KLC"}, attribute Price {200}} as last
into (/Translations)[1]');
Но теперь я хочу добавить условия к моему выражению с помощью предложения WHERE
, как показано ниже, но я продолжаю получать ошибку
Выражение не булева типа, указанное в контексте, где ожидается условие
WHERE(book , year) IN (SELECT id, MAX(year)
FROM book AS b, edition AS e
WHERE title = 'Encore une fois'
AND b.id = e.book
GROUP BY 1)
Причиной добавления условия является обновление только последней версии.
Как я могу изменить условие, которое будет принято в SQL Server?