Возможно ли умножение внутри "INSERT...VALUES"?
В данной таблице (Лот поставки) стоимость заказа напрямую зависит от количества и типа товара.
CREATE TABLE Order_lot
(
ID_Order_Lot INT PRIMARY KEY,
ID_Product INT FOREIGN KEY REFERENCES Product(ID_Product),
Amount INT,
Order_price Money,
ID_Order INT FOREIGN KEY REFERENCES _Order(ID_Order)
);
Сейчас таблица заполняется по таким правилам (прайс заполняется нулями):

Возможно ли добавить функцию при первичном заполнении, что-то вроде:
INSERT...[x.a][x.b][x.c] VALUES (5, 10, x.a*x.b)
или же необходимо создавать отдельный запрос/результирующую таблицу(select...where).
Ответы (1 шт):
Операндом в списке значений VALUES должно быть выражение, результатом которого является скалярное значение (требуемого типа). А что это за выражение - одиночный литерал, арифметическое выражение или даже подзапрос - абсолютно неважно.
Однако используемые в выражении значения должны быть достижимы (находиться в области видимости) - увы, значения других полей создаваемой записи к таковым не относятся.
Тем не менее требуемое - возможно. Следует использовать INSERT .. SET:
INSERT INTO x (a, b, c)
SET a = 5,
b = 10,
с = a * b;
В такой форме INSERT можно в выражении ссылаться на значения полей вставляемой записи, если эти значения присвоены выше по тексту.