У меня есть таблица price_info, который содержит следующие столбцы:SQL Server - Обновление нескольких записей, соединяющих с одним столом
group_id (int)
product_id (int)
date (datetime)
price_override (money, nullable)
Некоторые выборочные значения:
group_id product_id date price_override
1 1 2014-02-10 25
1 1 2014-02-11 30
1 1 2014-02-12 NULL
1 2 2014-02-10 40
1 2 2014-02-11 40
1 2 2014-02-12 40
1 3 2014-02-10 NULL
1 3 2014-02-11 NULL
1 3 2014-02-12 NULL
2 1 2014-02-10 42
2 1 2014-02-11 52
2 1 2014-02-12 70
2 2 2014-02-10 28
2 2 2014-02-11 87
2 2 2014-02-12 96
2 3 2014-02-10 45
2 3 2014-02-11 89
2 3 2014-02-12 NULL
То, что я хочу сделать, это я хочу обновить price_override (и применить некоторые вычисления) product_id, где group_id и дата совпадают, а price_override не равно null.
Расчет я хочу сделать, это умножить его на @ratio (флоат) и добавьте @offset (флоат)
Например, для group_id 1, PRODUCT_ID 3, я хочу, чтобы установить его price_override быть (price_override * @ratio) + @offset group_id 1, product_id 2 (где его price_override не равно null).
Я пробовал поиск, но до сих пор все, что я нашел, основано на обновлении только 1 строки с использованием уникальных идентификаторов.
В соответствии с запрашиваемым редактирования, чтобы обновить одну строку заданного значения будут следующие:
update price_info set price_override = @value where group_id = @group_id and product_id = @product_id and date = @date
Просто напишите свое предложение where, чтобы выбрать все подходящие строки, как указано в вашем первом абзаце, и инструкцию set для выполнения расчета из второго абзаца. Остальная часть инструкции обновления будет иметь тот же синтаксис, что и обновление одной строки. –
Пожалуйста, покажите, что вы пробовали, что не работает так, как вы этого хотели. Какую формулу вы бы использовали для обновления одной строки? Кроме того, откуда берутся эти переменные и одинаковы для всех строк? –
Я добавил запрос для обновления одной строки. Я не знаю синтаксиса для обновления нескольких строк, как мне нужно, и я не нашел ничего для руководства. – CJR