Обновление столбца из подзапроса

#sql #sql-server #tsql

#sql #sql-сервер #tsql

Вопрос:

У меня есть результирующий набор из запроса, который возвращает столбцы кода plu и штрих-кода с некоторыми условиями. У меня есть таблица с одним столбцом, в которой я генерирую некоторые значения 100001 100002 , например, и т.д.

Столбец штрих-кода для целевой таблицы not null является пустой строкой. Исходная и целевая таблицы у них нет ничего общего, чтобы объединить их.

Это то, что я получаю.

Сообщение 512, уровень 16, состояние 1, строка 22
Подзапрос вернул более 1 значения. Это не разрешено, когда подзапрос следует =, !=, <, <= , >, >= или когда подзапрос используется как выражение.

Это мой запрос.

 UPDATE ARTICULOSLIN SET CODBARRAS = (SELECT DISTINCT BRC FROM BRC) FROM ARTICULOSLIN ARL
LEFT JOIN ARTICULOS AR ON (ARL.CODARTICULO = AR.CODARTICULO)
WHERE AR.PORPESO = N'F' AND AR.DESCATALOGADO = N'F' AND LEN(ARL.CODBARRAS) != 13
 

Комментарии:

1. Ошибка сообщает вам о проблеме (очень явно); что насчет ошибки, которую вы здесь не понимаете?

2. Какое соединение вы хотите от таблицы BRC к таблице ARTICULOSLIN

3. Пожалуйста, прочтите это для получения нескольких советов по улучшению вашего вопроса. Что не так, ясно, то, что вы пытаетесь сделать, не так.

Ответ №1:

Сообщение об ошибке означает, что вы не можете присвоить несколько значений одному атрибуту, я полагаю, что ваш подзапрос возвращает все значения из таблицы BRC.

Комментарии:

1. Я это понимаю. Он возвращает все значения таблицы BRC. Что мне делать, я спрашиваю. Я попытался выполнить обновление с помощью слияния и курсора. Любое предложение….