Вот табличное представление того, что я хотел бы получить с помощью инструкции UPDATE.MySQL - запрос UPDATE с оператором SET в зависимости от результата предыдущего оператора SET
+----+----+---+---+----+----------+---------------+---------------+
| ID | A | B | C | D | Calc A | Calc B | Calc C |
+----+----+---+---+----+----------+---------------+---------------+
| 1 | 6 | 5 | 2 | 10 | =[A]-[B] | =[Calc A]/[D] | =[B]/[Calc B] |
| 2 | 8 | 5 | 2 | 10 | =[A]-[B] | =[Calc A]/[D] | =[B]/[Calc B] |
| 3 | 10 | 5 | 2 | 10 | =[A]-[B] | =[Calc A]/[D] | =[B]/[Calc B] |
+----+----+---+---+----+----------+---------------+---------------+
Мой текущий оператор UPDATE для достижения этой цели заключается в следующем ...
UPDATE [EXAMPLE]
SET [Calc A] = A - B
, [Calc B] = [Calc A]/D
, [Calc C] = B/[Calc B]
Однако он не работает должным образом. [Calc A] будет правильно вычислять первое UPDATE. Однако [Calc B] вычислит значение OLD в [Calc A], а не NEW обновленное значение, которое я только что написал в базе данных. Это справедливо для [Calc C], который снова ссылается на OLD-значение [Calc B].
Если вы выполняете инструкцию UPDATE 3 раза, данные будут вычисляться правильно. [Calc A] устанавливается правильно в первом вычислении, тогда [Calc B] будет ссылаться на правильное обновленное значение [Calc A] во втором UPDATE, тогда [Calc C] будет ссылаться на правильное значение [Calc B] в Третье ОБНОВЛЕНИЕ.
Итак, мой вопрос заключается в том, как установить все столбцы в их правильное значение в ONE update statement?
Вы используете MySQL или Microsoft SQL Server? Ваше использование квадратных скобок заставляет меня думать, что вы используете Microsoft. –
@BillKarwin MySQL, использовал только квадратные скобки из-за пробелов в именах полей – Josh