У меня есть следующая инструкция в хранимой процедуре, возвращающая странные результаты. Для двух столбцов, где один (RL) меньше 0, например -2, он должен добавить 2 к другому столбцу (HD). Если отрицательное значение было -8, оно должно добавить 8 в столбец HD.Ошибка соединения с сервером SQL
В тестовом только что закончившемся столбце RL было 0, а HD - 2. Я изменил RL на -2 и запустил код. Я был ОЖИДАЕТ: RL = 0 и HD = 4. Вместо этого РЕЗУЛЬТАТ был RL = 0 и HD = 5.
Я думаю, что проблема связана с наличием соединения. Как я могу написать это, чтобы заменить соединение предложением WHERE, пожалуйста.
UPDATE P
SET P.HD = P.HD + P.RL
,P.RL = 0
FROM Products P
INNER JOIN (
SELECT id
,RL
FROM Products
WHERE id IN (
SELECT ProductID
FROM OrderDetails
WHERE OrderID = @OrderId
)
AND RL < 0
) Q ON P.ID = Q.id
веселит
Не добавлять "решить" в названии вопроса. StackOverflow уже знает, разрешен ли вопрос, если вы принимаете ответ. – Pablo
Привет, извините, об этом не подозревал. Я думал, что не хочу тратить время других пользователей на вопрос, на который уже был дан ответ. Итак, как только ответ принят, угадывая вопрос «исчезает»? – Nick
Это зависит от того, как вы выполняете поиск, например, он не появится на вкладке «Неизменные вопросы». – Pablo