sql - Adding a computed column in mysql -
i'm trying add column called 'price' order_details table. want calculate price different prices of products other tables.
alter table order_detail add column price decimal(5,2) (case (order_detail.item_id, item.item_id, bagel.item_id, bagelfilling.item_id, item.price, bagelfilling.price, order_detail.quantity, order_detail.discount, drink_sizes.price, drink.item_id) when (order_detail.item_id = item.item_id) , (item.item_id = bagel.item_id) , (bagel.item_id = bagelfilling.item_id) ((item.price + bagelfilling.price)*order_detail.quantity)-order_detail.discount when (order_detail.item_id = item.item_id) , (item.item_id = drink.item_id) ((item.price + drink_sizes.price)*order_detail.quantity)-order_detail.discount when (order_detail.item_id = item.item_id) , (item.item_id = bagel.item_id) (item.price*order_detail.quantity)-order_detail.discount when (order_detail.item_id = item.item_id) , (item.item_id = drink.item_id) (item.price*order_detail.quantity)-order_detail.discount else 0.00 end)
i keep running error:
error code: 1241. operand should contain 1 column(s).
how fix issue? need price calculated either when table created or when data added.
you cannot reference fields other tables in expression of calculated field, since no subqueries allowed. so, if fix syntax error you, not work. task seems require trigger, or stored procedure, or view.
even though can have expression after case keyword, listing column names not valid expression, since not return single value.
Comments
Post a Comment