Я создал следующие простые DataModel
:

Я использовал следующие insert statements
для вставки значений:
1) Таблица Продукты :
INSERT INTO test.products
(ProductName, Price)
VALUES
("Product A","99,99"),
("Product B","49,95"),
("Product C","5,95");
2) Таблица Заказы :
INSERT INTO test.orders
(Customer)
VALUES
("Customer A"),
("Customer B"),
("Customer B");
Пока все это прекрасно работает.
Теперь в таблице Products_per_Order
я хочу вычислить последний столбец OrderValue
, умножив Price
на Quantity
.Поэтому я попытался воспользоваться следующими двумя вариантами, ссылаясь на ответы здесь , но пока не смог заставить их работать:
Примечание: Столбец Price
получение цены на основе idProduct
из таблицы Products
.
Эта функциональность уже работает.Не работает только умножение на количество.
Опция 1:
INSERT INTO test.products_per_order
(Orders_idOrders, Products_idProducts, Price, Quantity, OrderValue)
VALUES
("1","1",(Select Price from test.products where test.products.idProducts = "1"),"5",(Price * Quantity)),
("1","2",(Select Price from test.products where test.products.idProducts = "2"),"4",(Price * Quantity)),
("2","1",(Select Price from test.products where test.products.idProducts = "1"),"10",(Price * Quantity)),
("3","2",(Select Price from test.products where test.products.idProducts = "2"),"3",(Price * Quantity)),
("3","3",(Select Price from test.products where test.products.idProducts = "3"),"9",(Price * Quantity));
Опция 2:
INSERT INTO test.products_per_order
(Orders_idOrders, Products_idProducts, Price, Quantity, OrderValue)
SELECT m.idOrder, m.idProduct, p.price, m.qty, p.price * m.qty
FROM (SELECT 1 as idOrder, 1 as idProduct, 5 as qty UNION ALL
SELECT 1 as idOrder, 2 as idProduct, 4 as qty UNION ALL
SELECT 2 as idOrder, 1 as idProduct, 10 as qty UNION ALL
SELECT 3 as idOrder, 2 as idProduct, 3 as qty UNION ALL
SELECT 3 as idOrder, 3 as idProduct, 9 as qty
) m
LEFT JOIN test.products p on p.idProducts = m.idProduct;
У вас есть идеи, как решить эту проблему?